// Copyright 2024 Google LLC All Rights Reserved.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//     http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

// This code was autogenerated. Do not edit directly.
// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: protoc-gen-openapiv2/options/openapiv2.proto
// Protobuf C++ Version: 5.26.1

#ifndef GOOGLE_PROTOBUF_INCLUDED_protoc_2dgen_2dopenapiv2_2foptions_2fopenapiv2_2eproto_2epb_2eh
#define GOOGLE_PROTOBUF_INCLUDED_protoc_2dgen_2dopenapiv2_2foptions_2fopenapiv2_2eproto_2epb_2eh

#include <limits>
#include <string>
#include <type_traits>
#include <utility>

#include "google/protobuf/port_def.inc"
#if PROTOBUF_VERSION != 5026001
#error "Protobuf C++ gencode is built with an incompatible version of"
#error "Protobuf C++ headers/runtime. See"
#error "https://protobuf.dev/support/cross-version-runtime-guarantee/#cpp"
#endif
#include "google/protobuf/port_undef.inc"
#include "google/protobuf/io/coded_stream.h"
#include "google/protobuf/arena.h"
#include "google/protobuf/arenastring.h"
#include "google/protobuf/generated_message_tctable_decl.h"
#include "google/protobuf/generated_message_util.h"
#include "google/protobuf/metadata_lite.h"
#include "google/protobuf/generated_message_reflection.h"
#include "google/protobuf/message.h"
#include "google/protobuf/repeated_field.h"  // IWYU pragma: export
#include "google/protobuf/extension_set.h"  // IWYU pragma: export
#include "google/protobuf/map.h"  // IWYU pragma: export
#include "google/protobuf/map_entry.h"
#include "google/protobuf/map_field_inl.h"
#include "google/protobuf/generated_enum_reflection.h"
#include "google/protobuf/unknown_field_set.h"
#include "google/protobuf/struct.pb.h"
// @@protoc_insertion_point(includes)

// Must be included last.
#include "google/protobuf/port_def.inc"

#define PROTOBUF_INTERNAL_EXPORT_protoc_2dgen_2dopenapiv2_2foptions_2fopenapiv2_2eproto AGONES_EXPORT

namespace google {
namespace protobuf {
namespace internal {
class AnyMetadata;
}  // namespace internal
}  // namespace protobuf
}  // namespace google

// Internal implementation detail -- do not use these members.
struct AGONES_EXPORT TableStruct_protoc_2dgen_2dopenapiv2_2foptions_2fopenapiv2_2eproto {
  static const ::uint32_t offsets[];
};
AGONES_EXPORT extern const ::google::protobuf::internal::DescriptorTable
    descriptor_table_protoc_2dgen_2dopenapiv2_2foptions_2fopenapiv2_2eproto;
namespace grpc {
namespace gateway {
namespace protoc_gen_openapiv2 {
namespace options {
class Contact;
struct ContactDefaultTypeInternal;
AGONES_EXPORT extern ContactDefaultTypeInternal _Contact_default_instance_;
class ExternalDocumentation;
struct ExternalDocumentationDefaultTypeInternal;
AGONES_EXPORT extern ExternalDocumentationDefaultTypeInternal _ExternalDocumentation_default_instance_;
class Header;
struct HeaderDefaultTypeInternal;
AGONES_EXPORT extern HeaderDefaultTypeInternal _Header_default_instance_;
class Info;
struct InfoDefaultTypeInternal;
AGONES_EXPORT extern InfoDefaultTypeInternal _Info_default_instance_;
class Info_ExtensionsEntry_DoNotUse;
struct Info_ExtensionsEntry_DoNotUseDefaultTypeInternal;
AGONES_EXPORT extern Info_ExtensionsEntry_DoNotUseDefaultTypeInternal _Info_ExtensionsEntry_DoNotUse_default_instance_;
class JSONSchema;
struct JSONSchemaDefaultTypeInternal;
AGONES_EXPORT extern JSONSchemaDefaultTypeInternal _JSONSchema_default_instance_;
class JSONSchema_ExtensionsEntry_DoNotUse;
struct JSONSchema_ExtensionsEntry_DoNotUseDefaultTypeInternal;
AGONES_EXPORT extern JSONSchema_ExtensionsEntry_DoNotUseDefaultTypeInternal _JSONSchema_ExtensionsEntry_DoNotUse_default_instance_;
class JSONSchema_FieldConfiguration;
struct JSONSchema_FieldConfigurationDefaultTypeInternal;
AGONES_EXPORT extern JSONSchema_FieldConfigurationDefaultTypeInternal _JSONSchema_FieldConfiguration_default_instance_;
class License;
struct LicenseDefaultTypeInternal;
AGONES_EXPORT extern LicenseDefaultTypeInternal _License_default_instance_;
class Operation;
struct OperationDefaultTypeInternal;
AGONES_EXPORT extern OperationDefaultTypeInternal _Operation_default_instance_;
class Operation_ExtensionsEntry_DoNotUse;
struct Operation_ExtensionsEntry_DoNotUseDefaultTypeInternal;
AGONES_EXPORT extern Operation_ExtensionsEntry_DoNotUseDefaultTypeInternal _Operation_ExtensionsEntry_DoNotUse_default_instance_;
class Operation_ResponsesEntry_DoNotUse;
struct Operation_ResponsesEntry_DoNotUseDefaultTypeInternal;
AGONES_EXPORT extern Operation_ResponsesEntry_DoNotUseDefaultTypeInternal _Operation_ResponsesEntry_DoNotUse_default_instance_;
class Response;
struct ResponseDefaultTypeInternal;
AGONES_EXPORT extern ResponseDefaultTypeInternal _Response_default_instance_;
class Response_ExamplesEntry_DoNotUse;
struct Response_ExamplesEntry_DoNotUseDefaultTypeInternal;
AGONES_EXPORT extern Response_ExamplesEntry_DoNotUseDefaultTypeInternal _Response_ExamplesEntry_DoNotUse_default_instance_;
class Response_ExtensionsEntry_DoNotUse;
struct Response_ExtensionsEntry_DoNotUseDefaultTypeInternal;
AGONES_EXPORT extern Response_ExtensionsEntry_DoNotUseDefaultTypeInternal _Response_ExtensionsEntry_DoNotUse_default_instance_;
class Response_HeadersEntry_DoNotUse;
struct Response_HeadersEntry_DoNotUseDefaultTypeInternal;
AGONES_EXPORT extern Response_HeadersEntry_DoNotUseDefaultTypeInternal _Response_HeadersEntry_DoNotUse_default_instance_;
class Schema;
struct SchemaDefaultTypeInternal;
AGONES_EXPORT extern SchemaDefaultTypeInternal _Schema_default_instance_;
class Scopes;
struct ScopesDefaultTypeInternal;
AGONES_EXPORT extern ScopesDefaultTypeInternal _Scopes_default_instance_;
class Scopes_ScopeEntry_DoNotUse;
struct Scopes_ScopeEntry_DoNotUseDefaultTypeInternal;
AGONES_EXPORT extern Scopes_ScopeEntry_DoNotUseDefaultTypeInternal _Scopes_ScopeEntry_DoNotUse_default_instance_;
class SecurityDefinitions;
struct SecurityDefinitionsDefaultTypeInternal;
AGONES_EXPORT extern SecurityDefinitionsDefaultTypeInternal _SecurityDefinitions_default_instance_;
class SecurityDefinitions_SecurityEntry_DoNotUse;
struct SecurityDefinitions_SecurityEntry_DoNotUseDefaultTypeInternal;
AGONES_EXPORT extern SecurityDefinitions_SecurityEntry_DoNotUseDefaultTypeInternal _SecurityDefinitions_SecurityEntry_DoNotUse_default_instance_;
class SecurityRequirement;
struct SecurityRequirementDefaultTypeInternal;
AGONES_EXPORT extern SecurityRequirementDefaultTypeInternal _SecurityRequirement_default_instance_;
class SecurityRequirement_SecurityRequirementEntry_DoNotUse;
struct SecurityRequirement_SecurityRequirementEntry_DoNotUseDefaultTypeInternal;
AGONES_EXPORT extern SecurityRequirement_SecurityRequirementEntry_DoNotUseDefaultTypeInternal _SecurityRequirement_SecurityRequirementEntry_DoNotUse_default_instance_;
class SecurityRequirement_SecurityRequirementValue;
struct SecurityRequirement_SecurityRequirementValueDefaultTypeInternal;
AGONES_EXPORT extern SecurityRequirement_SecurityRequirementValueDefaultTypeInternal _SecurityRequirement_SecurityRequirementValue_default_instance_;
class SecurityScheme;
struct SecuritySchemeDefaultTypeInternal;
AGONES_EXPORT extern SecuritySchemeDefaultTypeInternal _SecurityScheme_default_instance_;
class SecurityScheme_ExtensionsEntry_DoNotUse;
struct SecurityScheme_ExtensionsEntry_DoNotUseDefaultTypeInternal;
AGONES_EXPORT extern SecurityScheme_ExtensionsEntry_DoNotUseDefaultTypeInternal _SecurityScheme_ExtensionsEntry_DoNotUse_default_instance_;
class Swagger;
struct SwaggerDefaultTypeInternal;
AGONES_EXPORT extern SwaggerDefaultTypeInternal _Swagger_default_instance_;
class Swagger_ExtensionsEntry_DoNotUse;
struct Swagger_ExtensionsEntry_DoNotUseDefaultTypeInternal;
AGONES_EXPORT extern Swagger_ExtensionsEntry_DoNotUseDefaultTypeInternal _Swagger_ExtensionsEntry_DoNotUse_default_instance_;
class Swagger_ResponsesEntry_DoNotUse;
struct Swagger_ResponsesEntry_DoNotUseDefaultTypeInternal;
AGONES_EXPORT extern Swagger_ResponsesEntry_DoNotUseDefaultTypeInternal _Swagger_ResponsesEntry_DoNotUse_default_instance_;
class Tag;
struct TagDefaultTypeInternal;
AGONES_EXPORT extern TagDefaultTypeInternal _Tag_default_instance_;
}  // namespace options
}  // namespace protoc_gen_openapiv2
}  // namespace gateway
}  // namespace grpc
namespace google {
namespace protobuf {
}  // namespace protobuf
}  // namespace google

namespace grpc {
namespace gateway {
namespace protoc_gen_openapiv2 {
namespace options {
enum JSONSchema_JSONSchemaSimpleTypes : int {
  JSONSchema_JSONSchemaSimpleTypes_UNKNOWN = 0,
  JSONSchema_JSONSchemaSimpleTypes_ARRAY = 1,
  JSONSchema_JSONSchemaSimpleTypes_BOOLEAN = 2,
  JSONSchema_JSONSchemaSimpleTypes_INTEGER = 3,
  JSONSchema_JSONSchemaSimpleTypes_NULL_ = 4,
  JSONSchema_JSONSchemaSimpleTypes_NUMBER = 5,
  JSONSchema_JSONSchemaSimpleTypes_OBJECT = 6,
  JSONSchema_JSONSchemaSimpleTypes_STRING = 7,
  JSONSchema_JSONSchemaSimpleTypes_JSONSchema_JSONSchemaSimpleTypes_INT_MIN_SENTINEL_DO_NOT_USE_ =
      std::numeric_limits<::int32_t>::min(),
  JSONSchema_JSONSchemaSimpleTypes_JSONSchema_JSONSchemaSimpleTypes_INT_MAX_SENTINEL_DO_NOT_USE_ =
      std::numeric_limits<::int32_t>::max(),
};

AGONES_EXPORT bool JSONSchema_JSONSchemaSimpleTypes_IsValid(int value);
AGONES_EXPORT extern const uint32_t JSONSchema_JSONSchemaSimpleTypes_internal_data_[];
constexpr JSONSchema_JSONSchemaSimpleTypes JSONSchema_JSONSchemaSimpleTypes_JSONSchemaSimpleTypes_MIN = static_cast<JSONSchema_JSONSchemaSimpleTypes>(0);
constexpr JSONSchema_JSONSchemaSimpleTypes JSONSchema_JSONSchemaSimpleTypes_JSONSchemaSimpleTypes_MAX = static_cast<JSONSchema_JSONSchemaSimpleTypes>(7);
constexpr int JSONSchema_JSONSchemaSimpleTypes_JSONSchemaSimpleTypes_ARRAYSIZE = 7 + 1;
AGONES_EXPORT const ::google::protobuf::EnumDescriptor*
JSONSchema_JSONSchemaSimpleTypes_descriptor();
template <typename T>
const std::string& JSONSchema_JSONSchemaSimpleTypes_Name(T value) {
  static_assert(std::is_same<T, JSONSchema_JSONSchemaSimpleTypes>::value ||
                    std::is_integral<T>::value,
                "Incorrect type passed to JSONSchemaSimpleTypes_Name().");
  return JSONSchema_JSONSchemaSimpleTypes_Name(static_cast<JSONSchema_JSONSchemaSimpleTypes>(value));
}
template <>
inline const std::string& JSONSchema_JSONSchemaSimpleTypes_Name(JSONSchema_JSONSchemaSimpleTypes value) {
  return ::google::protobuf::internal::NameOfDenseEnum<JSONSchema_JSONSchemaSimpleTypes_descriptor,
                                                 0, 7>(
      static_cast<int>(value));
}
inline bool JSONSchema_JSONSchemaSimpleTypes_Parse(absl::string_view name, JSONSchema_JSONSchemaSimpleTypes* value) {
  return ::google::protobuf::internal::ParseNamedEnum<JSONSchema_JSONSchemaSimpleTypes>(
      JSONSchema_JSONSchemaSimpleTypes_descriptor(), name, value);
}
enum SecurityScheme_Type : int {
  SecurityScheme_Type_TYPE_INVALID = 0,
  SecurityScheme_Type_TYPE_BASIC = 1,
  SecurityScheme_Type_TYPE_API_KEY = 2,
  SecurityScheme_Type_TYPE_OAUTH2 = 3,
  SecurityScheme_Type_SecurityScheme_Type_INT_MIN_SENTINEL_DO_NOT_USE_ =
      std::numeric_limits<::int32_t>::min(),
  SecurityScheme_Type_SecurityScheme_Type_INT_MAX_SENTINEL_DO_NOT_USE_ =
      std::numeric_limits<::int32_t>::max(),
};

AGONES_EXPORT bool SecurityScheme_Type_IsValid(int value);
AGONES_EXPORT extern const uint32_t SecurityScheme_Type_internal_data_[];
constexpr SecurityScheme_Type SecurityScheme_Type_Type_MIN = static_cast<SecurityScheme_Type>(0);
constexpr SecurityScheme_Type SecurityScheme_Type_Type_MAX = static_cast<SecurityScheme_Type>(3);
constexpr int SecurityScheme_Type_Type_ARRAYSIZE = 3 + 1;
AGONES_EXPORT const ::google::protobuf::EnumDescriptor*
SecurityScheme_Type_descriptor();
template <typename T>
const std::string& SecurityScheme_Type_Name(T value) {
  static_assert(std::is_same<T, SecurityScheme_Type>::value ||
                    std::is_integral<T>::value,
                "Incorrect type passed to Type_Name().");
  return SecurityScheme_Type_Name(static_cast<SecurityScheme_Type>(value));
}
template <>
inline const std::string& SecurityScheme_Type_Name(SecurityScheme_Type value) {
  return ::google::protobuf::internal::NameOfDenseEnum<SecurityScheme_Type_descriptor,
                                                 0, 3>(
      static_cast<int>(value));
}
inline bool SecurityScheme_Type_Parse(absl::string_view name, SecurityScheme_Type* value) {
  return ::google::protobuf::internal::ParseNamedEnum<SecurityScheme_Type>(
      SecurityScheme_Type_descriptor(), name, value);
}
enum SecurityScheme_In : int {
  SecurityScheme_In_IN_INVALID = 0,
  SecurityScheme_In_IN_QUERY = 1,
  SecurityScheme_In_IN_HEADER = 2,
  SecurityScheme_In_SecurityScheme_In_INT_MIN_SENTINEL_DO_NOT_USE_ =
      std::numeric_limits<::int32_t>::min(),
  SecurityScheme_In_SecurityScheme_In_INT_MAX_SENTINEL_DO_NOT_USE_ =
      std::numeric_limits<::int32_t>::max(),
};

AGONES_EXPORT bool SecurityScheme_In_IsValid(int value);
AGONES_EXPORT extern const uint32_t SecurityScheme_In_internal_data_[];
constexpr SecurityScheme_In SecurityScheme_In_In_MIN = static_cast<SecurityScheme_In>(0);
constexpr SecurityScheme_In SecurityScheme_In_In_MAX = static_cast<SecurityScheme_In>(2);
constexpr int SecurityScheme_In_In_ARRAYSIZE = 2 + 1;
AGONES_EXPORT const ::google::protobuf::EnumDescriptor*
SecurityScheme_In_descriptor();
template <typename T>
const std::string& SecurityScheme_In_Name(T value) {
  static_assert(std::is_same<T, SecurityScheme_In>::value ||
                    std::is_integral<T>::value,
                "Incorrect type passed to In_Name().");
  return SecurityScheme_In_Name(static_cast<SecurityScheme_In>(value));
}
template <>
inline const std::string& SecurityScheme_In_Name(SecurityScheme_In value) {
  return ::google::protobuf::internal::NameOfDenseEnum<SecurityScheme_In_descriptor,
                                                 0, 2>(
      static_cast<int>(value));
}
inline bool SecurityScheme_In_Parse(absl::string_view name, SecurityScheme_In* value) {
  return ::google::protobuf::internal::ParseNamedEnum<SecurityScheme_In>(
      SecurityScheme_In_descriptor(), name, value);
}
enum SecurityScheme_Flow : int {
  SecurityScheme_Flow_FLOW_INVALID = 0,
  SecurityScheme_Flow_FLOW_IMPLICIT = 1,
  SecurityScheme_Flow_FLOW_PASSWORD = 2,
  SecurityScheme_Flow_FLOW_APPLICATION = 3,
  SecurityScheme_Flow_FLOW_ACCESS_CODE = 4,
  SecurityScheme_Flow_SecurityScheme_Flow_INT_MIN_SENTINEL_DO_NOT_USE_ =
      std::numeric_limits<::int32_t>::min(),
  SecurityScheme_Flow_SecurityScheme_Flow_INT_MAX_SENTINEL_DO_NOT_USE_ =
      std::numeric_limits<::int32_t>::max(),
};

AGONES_EXPORT bool SecurityScheme_Flow_IsValid(int value);
AGONES_EXPORT extern const uint32_t SecurityScheme_Flow_internal_data_[];
constexpr SecurityScheme_Flow SecurityScheme_Flow_Flow_MIN = static_cast<SecurityScheme_Flow>(0);
constexpr SecurityScheme_Flow SecurityScheme_Flow_Flow_MAX = static_cast<SecurityScheme_Flow>(4);
constexpr int SecurityScheme_Flow_Flow_ARRAYSIZE = 4 + 1;
AGONES_EXPORT const ::google::protobuf::EnumDescriptor*
SecurityScheme_Flow_descriptor();
template <typename T>
const std::string& SecurityScheme_Flow_Name(T value) {
  static_assert(std::is_same<T, SecurityScheme_Flow>::value ||
                    std::is_integral<T>::value,
                "Incorrect type passed to Flow_Name().");
  return SecurityScheme_Flow_Name(static_cast<SecurityScheme_Flow>(value));
}
template <>
inline const std::string& SecurityScheme_Flow_Name(SecurityScheme_Flow value) {
  return ::google::protobuf::internal::NameOfDenseEnum<SecurityScheme_Flow_descriptor,
                                                 0, 4>(
      static_cast<int>(value));
}
inline bool SecurityScheme_Flow_Parse(absl::string_view name, SecurityScheme_Flow* value) {
  return ::google::protobuf::internal::ParseNamedEnum<SecurityScheme_Flow>(
      SecurityScheme_Flow_descriptor(), name, value);
}
enum Scheme : int {
  UNKNOWN = 0,
  HTTP = 1,
  HTTPS = 2,
  WS = 3,
  WSS = 4,
  Scheme_INT_MIN_SENTINEL_DO_NOT_USE_ =
      std::numeric_limits<::int32_t>::min(),
  Scheme_INT_MAX_SENTINEL_DO_NOT_USE_ =
      std::numeric_limits<::int32_t>::max(),
};

AGONES_EXPORT bool Scheme_IsValid(int value);
AGONES_EXPORT extern const uint32_t Scheme_internal_data_[];
constexpr Scheme Scheme_MIN = static_cast<Scheme>(0);
constexpr Scheme Scheme_MAX = static_cast<Scheme>(4);
constexpr int Scheme_ARRAYSIZE = 4 + 1;
AGONES_EXPORT const ::google::protobuf::EnumDescriptor*
Scheme_descriptor();
template <typename T>
const std::string& Scheme_Name(T value) {
  static_assert(std::is_same<T, Scheme>::value ||
                    std::is_integral<T>::value,
                "Incorrect type passed to Scheme_Name().");
  return Scheme_Name(static_cast<Scheme>(value));
}
template <>
inline const std::string& Scheme_Name(Scheme value) {
  return ::google::protobuf::internal::NameOfDenseEnum<Scheme_descriptor,
                                                 0, 4>(
      static_cast<int>(value));
}
inline bool Scheme_Parse(absl::string_view name, Scheme* value) {
  return ::google::protobuf::internal::ParseNamedEnum<Scheme>(
      Scheme_descriptor(), name, value);
}

// ===================================================================


// -------------------------------------------------------------------

class AGONES_EXPORT SecurityRequirement_SecurityRequirementValue final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue) */ {
 public:
  inline SecurityRequirement_SecurityRequirementValue() : SecurityRequirement_SecurityRequirementValue(nullptr) {}
  ~SecurityRequirement_SecurityRequirementValue() override;
  template <typename = void>
  explicit PROTOBUF_CONSTEXPR SecurityRequirement_SecurityRequirementValue(
      ::google::protobuf::internal::ConstantInitialized);

  inline SecurityRequirement_SecurityRequirementValue(const SecurityRequirement_SecurityRequirementValue& from) : SecurityRequirement_SecurityRequirementValue(nullptr, from) {}
  inline SecurityRequirement_SecurityRequirementValue(SecurityRequirement_SecurityRequirementValue&& from) noexcept
      : SecurityRequirement_SecurityRequirementValue(nullptr, std::move(from)) {}
  inline SecurityRequirement_SecurityRequirementValue& operator=(const SecurityRequirement_SecurityRequirementValue& from) {
    CopyFrom(from);
    return *this;
  }
  inline SecurityRequirement_SecurityRequirementValue& operator=(SecurityRequirement_SecurityRequirementValue&& from) noexcept {
    if (this == &from) return *this;
    if (GetArena() == from.GetArena()
#ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetArena() != nullptr
#endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields()
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  static const ::google::protobuf::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::google::protobuf::Descriptor* GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  static const ::google::protobuf::Reflection* GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  static const SecurityRequirement_SecurityRequirementValue& default_instance() {
    return *internal_default_instance();
  }
  static inline const SecurityRequirement_SecurityRequirementValue* internal_default_instance() {
    return reinterpret_cast<const SecurityRequirement_SecurityRequirementValue*>(
        &_SecurityRequirement_SecurityRequirementValue_default_instance_);
  }
  static constexpr int kIndexInFileMessages = 25;
  friend void swap(SecurityRequirement_SecurityRequirementValue& a, SecurityRequirement_SecurityRequirementValue& b) { a.Swap(&b); }
  inline void Swap(SecurityRequirement_SecurityRequirementValue* other) {
    if (other == this) return;
#ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetArena() != nullptr && GetArena() == other->GetArena()) {
#else   // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetArena() == other->GetArena()) {
#endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(SecurityRequirement_SecurityRequirementValue* other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  SecurityRequirement_SecurityRequirementValue* New(::google::protobuf::Arena* arena = nullptr) const final {
    return ::google::protobuf::Message::DefaultConstruct<SecurityRequirement_SecurityRequirementValue>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const SecurityRequirement_SecurityRequirementValue& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const SecurityRequirement_SecurityRequirementValue& from) { SecurityRequirement_SecurityRequirementValue::MergeImpl(*this, from); }

  private:
  static void MergeImpl(
      ::google::protobuf::MessageLite& to_msg,
      const ::google::protobuf::MessageLite& from_msg);

  public:
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  ::size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::google::protobuf::internal::ParseContext* ctx) final;
  ::uint8_t* _InternalSerialize(
      ::uint8_t* target,
      ::google::protobuf::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const { return _impl_._cached_size_.Get(); }

  private:
  void SharedCtor(::google::protobuf::Arena* arena);
  void SharedDtor();
  void InternalSwap(SecurityRequirement_SecurityRequirementValue* other);
 private:
  friend class ::google::protobuf::internal::AnyMetadata;
  static ::absl::string_view FullMessageName() { return "grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue"; }

 protected:
  explicit SecurityRequirement_SecurityRequirementValue(::google::protobuf::Arena* arena);
  SecurityRequirement_SecurityRequirementValue(::google::protobuf::Arena* arena, const SecurityRequirement_SecurityRequirementValue& from);
  SecurityRequirement_SecurityRequirementValue(::google::protobuf::Arena* arena, SecurityRequirement_SecurityRequirementValue&& from) noexcept
      : SecurityRequirement_SecurityRequirementValue(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::MessageLite::ClassData* GetClassData()
      const final;

 public:
  ::google::protobuf::Metadata GetMetadata() const final;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kScopeFieldNumber = 1,
  };
  // repeated string scope = 1;
  int scope_size() const;
  private:
  int _internal_scope_size() const;

  public:
  void clear_scope() ;
  const std::string& scope(int index) const;
  std::string* mutable_scope(int index);
  void set_scope(int index, const std::string& value);
  void set_scope(int index, std::string&& value);
  void set_scope(int index, const char* value);
  void set_scope(int index, const char* value, std::size_t size);
  void set_scope(int index, absl::string_view value);
  std::string* add_scope();
  void add_scope(const std::string& value);
  void add_scope(std::string&& value);
  void add_scope(const char* value);
  void add_scope(const char* value, std::size_t size);
  void add_scope(absl::string_view value);
  const ::google::protobuf::RepeatedPtrField<std::string>& scope() const;
  ::google::protobuf::RepeatedPtrField<std::string>* mutable_scope();

  private:
  const ::google::protobuf::RepeatedPtrField<std::string>& _internal_scope() const;
  ::google::protobuf::RepeatedPtrField<std::string>* _internal_mutable_scope();

  public:
  // @@protoc_insertion_point(class_scope:grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue)
 private:
  class _Internal;
  friend class ::google::protobuf::internal::TcParser;
  static const ::google::protobuf::internal::TcParseTable<
      0, 1, 0,
      100, 2>
      _table_;
  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(
        ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(::google::protobuf::internal::InternalVisibility visibility,
                          ::google::protobuf::Arena* arena);
    inline explicit Impl_(::google::protobuf::internal::InternalVisibility visibility,
                          ::google::protobuf::Arena* arena, const Impl_& from);
    ::google::protobuf::RepeatedPtrField<std::string> scope_;
    mutable ::google::protobuf::internal::CachedSize _cached_size_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_protoc_2dgen_2dopenapiv2_2foptions_2fopenapiv2_2eproto;
};
// -------------------------------------------------------------------

class Scopes_ScopeEntry_DoNotUse final
    : public ::google::protobuf::internal::MapEntry<
          Scopes_ScopeEntry_DoNotUse, std::string, std::string,
          ::google::protobuf::internal::WireFormatLite::TYPE_STRING,
          ::google::protobuf::internal::WireFormatLite::TYPE_STRING> {
 public:
  using SuperType = ::google::protobuf::internal::MapEntry<
      Scopes_ScopeEntry_DoNotUse, std::string, std::string,
      ::google::protobuf::internal::WireFormatLite::TYPE_STRING,
      ::google::protobuf::internal::WireFormatLite::TYPE_STRING>;
  Scopes_ScopeEntry_DoNotUse();
  template <typename = void>
  explicit PROTOBUF_CONSTEXPR Scopes_ScopeEntry_DoNotUse(
      ::google::protobuf::internal::ConstantInitialized);
  explicit Scopes_ScopeEntry_DoNotUse(::google::protobuf::Arena* arena);
  static const Scopes_ScopeEntry_DoNotUse* internal_default_instance() {
    return reinterpret_cast<const Scopes_ScopeEntry_DoNotUse*>(
        &_Scopes_ScopeEntry_DoNotUse_default_instance_);
  }
  static bool ValidateKey(std::string* s) {
    return ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(s->data(), static_cast<int>(s->size()), ::google::protobuf::internal::WireFormatLite::PARSE, "grpc.gateway.protoc_gen_openapiv2.options.Scopes.ScopeEntry.key");
 }
  static bool ValidateValue(std::string* s) {
    return ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(s->data(), static_cast<int>(s->size()), ::google::protobuf::internal::WireFormatLite::PARSE, "grpc.gateway.protoc_gen_openapiv2.options.Scopes.ScopeEntry.value");
 }
  ::google::protobuf::Metadata GetMetadata() const final;
  friend struct ::TableStruct_protoc_2dgen_2dopenapiv2_2foptions_2fopenapiv2_2eproto;
};
// -------------------------------------------------------------------

class Response_ExamplesEntry_DoNotUse final
    : public ::google::protobuf::internal::MapEntry<
          Response_ExamplesEntry_DoNotUse, std::string, std::string,
          ::google::protobuf::internal::WireFormatLite::TYPE_STRING,
          ::google::protobuf::internal::WireFormatLite::TYPE_STRING> {
 public:
  using SuperType = ::google::protobuf::internal::MapEntry<
      Response_ExamplesEntry_DoNotUse, std::string, std::string,
      ::google::protobuf::internal::WireFormatLite::TYPE_STRING,
      ::google::protobuf::internal::WireFormatLite::TYPE_STRING>;
  Response_ExamplesEntry_DoNotUse();
  template <typename = void>
  explicit PROTOBUF_CONSTEXPR Response_ExamplesEntry_DoNotUse(
      ::google::protobuf::internal::ConstantInitialized);
  explicit Response_ExamplesEntry_DoNotUse(::google::protobuf::Arena* arena);
  static const Response_ExamplesEntry_DoNotUse* internal_default_instance() {
    return reinterpret_cast<const Response_ExamplesEntry_DoNotUse*>(
        &_Response_ExamplesEntry_DoNotUse_default_instance_);
  }
  static bool ValidateKey(std::string* s) {
    return ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(s->data(), static_cast<int>(s->size()), ::google::protobuf::internal::WireFormatLite::PARSE, "grpc.gateway.protoc_gen_openapiv2.options.Response.ExamplesEntry.key");
 }
  static bool ValidateValue(std::string* s) {
    return ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(s->data(), static_cast<int>(s->size()), ::google::protobuf::internal::WireFormatLite::PARSE, "grpc.gateway.protoc_gen_openapiv2.options.Response.ExamplesEntry.value");
 }
  ::google::protobuf::Metadata GetMetadata() const final;
  friend struct ::TableStruct_protoc_2dgen_2dopenapiv2_2foptions_2fopenapiv2_2eproto;
};
// -------------------------------------------------------------------

class AGONES_EXPORT License final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:grpc.gateway.protoc_gen_openapiv2.options.License) */ {
 public:
  inline License() : License(nullptr) {}
  ~License() override;
  template <typename = void>
  explicit PROTOBUF_CONSTEXPR License(
      ::google::protobuf::internal::ConstantInitialized);

  inline License(const License& from) : License(nullptr, from) {}
  inline License(License&& from) noexcept
      : License(nullptr, std::move(from)) {}
  inline License& operator=(const License& from) {
    CopyFrom(from);
    return *this;
  }
  inline License& operator=(License&& from) noexcept {
    if (this == &from) return *this;
    if (GetArena() == from.GetArena()
#ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetArena() != nullptr
#endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields()
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  static const ::google::protobuf::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::google::protobuf::Descriptor* GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  static const ::google::protobuf::Reflection* GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  static const License& default_instance() {
    return *internal_default_instance();
  }
  static inline const License* internal_default_instance() {
    return reinterpret_cast<const License*>(
        &_License_default_instance_);
  }
  static constexpr int kIndexInFileMessages = 14;
  friend void swap(License& a, License& b) { a.Swap(&b); }
  inline void Swap(License* other) {
    if (other == this) return;
#ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetArena() != nullptr && GetArena() == other->GetArena()) {
#else   // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetArena() == other->GetArena()) {
#endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(License* other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  License* New(::google::protobuf::Arena* arena = nullptr) const final {
    return ::google::protobuf::Message::DefaultConstruct<License>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const License& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const License& from) { License::MergeImpl(*this, from); }

  private:
  static void MergeImpl(
      ::google::protobuf::MessageLite& to_msg,
      const ::google::protobuf::MessageLite& from_msg);

  public:
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  ::size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::google::protobuf::internal::ParseContext* ctx) final;
  ::uint8_t* _InternalSerialize(
      ::uint8_t* target,
      ::google::protobuf::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const { return _impl_._cached_size_.Get(); }

  private:
  void SharedCtor(::google::protobuf::Arena* arena);
  void SharedDtor();
  void InternalSwap(License* other);
 private:
  friend class ::google::protobuf::internal::AnyMetadata;
  static ::absl::string_view FullMessageName() { return "grpc.gateway.protoc_gen_openapiv2.options.License"; }

 protected:
  explicit License(::google::protobuf::Arena* arena);
  License(::google::protobuf::Arena* arena, const License& from);
  License(::google::protobuf::Arena* arena, License&& from) noexcept
      : License(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::MessageLite::ClassData* GetClassData()
      const final;

 public:
  ::google::protobuf::Metadata GetMetadata() const final;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kNameFieldNumber = 1,
    kUrlFieldNumber = 2,
  };
  // string name = 1;
  void clear_name() ;
  const std::string& name() const;
  template <typename Arg_ = const std::string&, typename... Args_>
  void set_name(Arg_&& arg, Args_... args);
  std::string* mutable_name();
  PROTOBUF_NODISCARD std::string* release_name();
  void set_allocated_name(std::string* value);

  private:
  const std::string& _internal_name() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_name(
      const std::string& value);
  std::string* _internal_mutable_name();

  public:
  // string url = 2;
  void clear_url() ;
  const std::string& url() const;
  template <typename Arg_ = const std::string&, typename... Args_>
  void set_url(Arg_&& arg, Args_... args);
  std::string* mutable_url();
  PROTOBUF_NODISCARD std::string* release_url();
  void set_allocated_url(std::string* value);

  private:
  const std::string& _internal_url() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_url(
      const std::string& value);
  std::string* _internal_mutable_url();

  public:
  // @@protoc_insertion_point(class_scope:grpc.gateway.protoc_gen_openapiv2.options.License)
 private:
  class _Internal;
  friend class ::google::protobuf::internal::TcParser;
  static const ::google::protobuf::internal::TcParseTable<
      1, 2, 0,
      65, 2>
      _table_;
  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(
        ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(::google::protobuf::internal::InternalVisibility visibility,
                          ::google::protobuf::Arena* arena);
    inline explicit Impl_(::google::protobuf::internal::InternalVisibility visibility,
                          ::google::protobuf::Arena* arena, const Impl_& from);
    ::google::protobuf::internal::ArenaStringPtr name_;
    ::google::protobuf::internal::ArenaStringPtr url_;
    mutable ::google::protobuf::internal::CachedSize _cached_size_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_protoc_2dgen_2dopenapiv2_2foptions_2fopenapiv2_2eproto;
};
// -------------------------------------------------------------------

class AGONES_EXPORT JSONSchema_FieldConfiguration final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.FieldConfiguration) */ {
 public:
  inline JSONSchema_FieldConfiguration() : JSONSchema_FieldConfiguration(nullptr) {}
  ~JSONSchema_FieldConfiguration() override;
  template <typename = void>
  explicit PROTOBUF_CONSTEXPR JSONSchema_FieldConfiguration(
      ::google::protobuf::internal::ConstantInitialized);

  inline JSONSchema_FieldConfiguration(const JSONSchema_FieldConfiguration& from) : JSONSchema_FieldConfiguration(nullptr, from) {}
  inline JSONSchema_FieldConfiguration(JSONSchema_FieldConfiguration&& from) noexcept
      : JSONSchema_FieldConfiguration(nullptr, std::move(from)) {}
  inline JSONSchema_FieldConfiguration& operator=(const JSONSchema_FieldConfiguration& from) {
    CopyFrom(from);
    return *this;
  }
  inline JSONSchema_FieldConfiguration& operator=(JSONSchema_FieldConfiguration&& from) noexcept {
    if (this == &from) return *this;
    if (GetArena() == from.GetArena()
#ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetArena() != nullptr
#endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields()
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  static const ::google::protobuf::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::google::protobuf::Descriptor* GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  static const ::google::protobuf::Reflection* GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  static const JSONSchema_FieldConfiguration& default_instance() {
    return *internal_default_instance();
  }
  static inline const JSONSchema_FieldConfiguration* internal_default_instance() {
    return reinterpret_cast<const JSONSchema_FieldConfiguration*>(
        &_JSONSchema_FieldConfiguration_default_instance_);
  }
  static constexpr int kIndexInFileMessages = 17;
  friend void swap(JSONSchema_FieldConfiguration& a, JSONSchema_FieldConfiguration& b) { a.Swap(&b); }
  inline void Swap(JSONSchema_FieldConfiguration* other) {
    if (other == this) return;
#ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetArena() != nullptr && GetArena() == other->GetArena()) {
#else   // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetArena() == other->GetArena()) {
#endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(JSONSchema_FieldConfiguration* other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  JSONSchema_FieldConfiguration* New(::google::protobuf::Arena* arena = nullptr) const final {
    return ::google::protobuf::Message::DefaultConstruct<JSONSchema_FieldConfiguration>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const JSONSchema_FieldConfiguration& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const JSONSchema_FieldConfiguration& from) { JSONSchema_FieldConfiguration::MergeImpl(*this, from); }

  private:
  static void MergeImpl(
      ::google::protobuf::MessageLite& to_msg,
      const ::google::protobuf::MessageLite& from_msg);

  public:
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  ::size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::google::protobuf::internal::ParseContext* ctx) final;
  ::uint8_t* _InternalSerialize(
      ::uint8_t* target,
      ::google::protobuf::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const { return _impl_._cached_size_.Get(); }

  private:
  void SharedCtor(::google::protobuf::Arena* arena);
  void SharedDtor();
  void InternalSwap(JSONSchema_FieldConfiguration* other);
 private:
  friend class ::google::protobuf::internal::AnyMetadata;
  static ::absl::string_view FullMessageName() { return "grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.FieldConfiguration"; }

 protected:
  explicit JSONSchema_FieldConfiguration(::google::protobuf::Arena* arena);
  JSONSchema_FieldConfiguration(::google::protobuf::Arena* arena, const JSONSchema_FieldConfiguration& from);
  JSONSchema_FieldConfiguration(::google::protobuf::Arena* arena, JSONSchema_FieldConfiguration&& from) noexcept
      : JSONSchema_FieldConfiguration(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::MessageLite::ClassData* GetClassData()
      const final;

 public:
  ::google::protobuf::Metadata GetMetadata() const final;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kPathParamNameFieldNumber = 47,
  };
  // string path_param_name = 47;
  void clear_path_param_name() ;
  const std::string& path_param_name() const;
  template <typename Arg_ = const std::string&, typename... Args_>
  void set_path_param_name(Arg_&& arg, Args_... args);
  std::string* mutable_path_param_name();
  PROTOBUF_NODISCARD std::string* release_path_param_name();
  void set_allocated_path_param_name(std::string* value);

  private:
  const std::string& _internal_path_param_name() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_path_param_name(
      const std::string& value);
  std::string* _internal_mutable_path_param_name();

  public:
  // @@protoc_insertion_point(class_scope:grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.FieldConfiguration)
 private:
  class _Internal;
  friend class ::google::protobuf::internal::TcParser;
  static const ::google::protobuf::internal::TcParseTable<
      0, 1, 0,
      95, 7>
      _table_;
  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(
        ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(::google::protobuf::internal::InternalVisibility visibility,
                          ::google::protobuf::Arena* arena);
    inline explicit Impl_(::google::protobuf::internal::InternalVisibility visibility,
                          ::google::protobuf::Arena* arena, const Impl_& from);
    ::google::protobuf::internal::ArenaStringPtr path_param_name_;
    mutable ::google::protobuf::internal::CachedSize _cached_size_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_protoc_2dgen_2dopenapiv2_2foptions_2fopenapiv2_2eproto;
};
// -------------------------------------------------------------------

class AGONES_EXPORT Header final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:grpc.gateway.protoc_gen_openapiv2.options.Header) */ {
 public:
  inline Header() : Header(nullptr) {}
  ~Header() override;
  template <typename = void>
  explicit PROTOBUF_CONSTEXPR Header(
      ::google::protobuf::internal::ConstantInitialized);

  inline Header(const Header& from) : Header(nullptr, from) {}
  inline Header(Header&& from) noexcept
      : Header(nullptr, std::move(from)) {}
  inline Header& operator=(const Header& from) {
    CopyFrom(from);
    return *this;
  }
  inline Header& operator=(Header&& from) noexcept {
    if (this == &from) return *this;
    if (GetArena() == from.GetArena()
#ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetArena() != nullptr
#endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields()
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  static const ::google::protobuf::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::google::protobuf::Descriptor* GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  static const ::google::protobuf::Reflection* GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  static const Header& default_instance() {
    return *internal_default_instance();
  }
  static inline const Header* internal_default_instance() {
    return reinterpret_cast<const Header*>(
        &_Header_default_instance_);
  }
  static constexpr int kIndexInFileMessages = 6;
  friend void swap(Header& a, Header& b) { a.Swap(&b); }
  inline void Swap(Header* other) {
    if (other == this) return;
#ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetArena() != nullptr && GetArena() == other->GetArena()) {
#else   // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetArena() == other->GetArena()) {
#endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(Header* other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  Header* New(::google::protobuf::Arena* arena = nullptr) const final {
    return ::google::protobuf::Message::DefaultConstruct<Header>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const Header& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const Header& from) { Header::MergeImpl(*this, from); }

  private:
  static void MergeImpl(
      ::google::protobuf::MessageLite& to_msg,
      const ::google::protobuf::MessageLite& from_msg);

  public:
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  ::size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::google::protobuf::internal::ParseContext* ctx) final;
  ::uint8_t* _InternalSerialize(
      ::uint8_t* target,
      ::google::protobuf::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const { return _impl_._cached_size_.Get(); }

  private:
  void SharedCtor(::google::protobuf::Arena* arena);
  void SharedDtor();
  void InternalSwap(Header* other);
 private:
  friend class ::google::protobuf::internal::AnyMetadata;
  static ::absl::string_view FullMessageName() { return "grpc.gateway.protoc_gen_openapiv2.options.Header"; }

 protected:
  explicit Header(::google::protobuf::Arena* arena);
  Header(::google::protobuf::Arena* arena, const Header& from);
  Header(::google::protobuf::Arena* arena, Header&& from) noexcept
      : Header(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::MessageLite::ClassData* GetClassData()
      const final;

 public:
  ::google::protobuf::Metadata GetMetadata() const final;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kDescriptionFieldNumber = 1,
    kTypeFieldNumber = 2,
    kFormatFieldNumber = 3,
    kDefaultFieldNumber = 6,
    kPatternFieldNumber = 13,
  };
  // string description = 1;
  void clear_description() ;
  const std::string& description() const;
  template <typename Arg_ = const std::string&, typename... Args_>
  void set_description(Arg_&& arg, Args_... args);
  std::string* mutable_description();
  PROTOBUF_NODISCARD std::string* release_description();
  void set_allocated_description(std::string* value);

  private:
  const std::string& _internal_description() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_description(
      const std::string& value);
  std::string* _internal_mutable_description();

  public:
  // string type = 2;
  void clear_type() ;
  const std::string& type() const;
  template <typename Arg_ = const std::string&, typename... Args_>
  void set_type(Arg_&& arg, Args_... args);
  std::string* mutable_type();
  PROTOBUF_NODISCARD std::string* release_type();
  void set_allocated_type(std::string* value);

  private:
  const std::string& _internal_type() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_type(
      const std::string& value);
  std::string* _internal_mutable_type();

  public:
  // string format = 3;
  void clear_format() ;
  const std::string& format() const;
  template <typename Arg_ = const std::string&, typename... Args_>
  void set_format(Arg_&& arg, Args_... args);
  std::string* mutable_format();
  PROTOBUF_NODISCARD std::string* release_format();
  void set_allocated_format(std::string* value);

  private:
  const std::string& _internal_format() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_format(
      const std::string& value);
  std::string* _internal_mutable_format();

  public:
  // string default = 6;
  void clear_default_() ;
  const std::string& default_() const;
  template <typename Arg_ = const std::string&, typename... Args_>
  void set_default_(Arg_&& arg, Args_... args);
  std::string* mutable_default_();
  PROTOBUF_NODISCARD std::string* release_default_();
  void set_allocated_default_(std::string* value);

  private:
  const std::string& _internal_default_() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_default_(
      const std::string& value);
  std::string* _internal_mutable_default_();

  public:
  // string pattern = 13;
  void clear_pattern() ;
  const std::string& pattern() const;
  template <typename Arg_ = const std::string&, typename... Args_>
  void set_pattern(Arg_&& arg, Args_... args);
  std::string* mutable_pattern();
  PROTOBUF_NODISCARD std::string* release_pattern();
  void set_allocated_pattern(std::string* value);

  private:
  const std::string& _internal_pattern() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_pattern(
      const std::string& value);
  std::string* _internal_mutable_pattern();

  public:
  // @@protoc_insertion_point(class_scope:grpc.gateway.protoc_gen_openapiv2.options.Header)
 private:
  class _Internal;
  friend class ::google::protobuf::internal::TcParser;
  static const ::google::protobuf::internal::TcParseTable<
      3, 5, 0,
      92, 2>
      _table_;
  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(
        ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(::google::protobuf::internal::InternalVisibility visibility,
                          ::google::protobuf::Arena* arena);
    inline explicit Impl_(::google::protobuf::internal::InternalVisibility visibility,
                          ::google::protobuf::Arena* arena, const Impl_& from);
    ::google::protobuf::internal::ArenaStringPtr description_;
    ::google::protobuf::internal::ArenaStringPtr type_;
    ::google::protobuf::internal::ArenaStringPtr format_;
    ::google::protobuf::internal::ArenaStringPtr default__;
    ::google::protobuf::internal::ArenaStringPtr pattern_;
    mutable ::google::protobuf::internal::CachedSize _cached_size_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_protoc_2dgen_2dopenapiv2_2foptions_2fopenapiv2_2eproto;
};
// -------------------------------------------------------------------

class AGONES_EXPORT ExternalDocumentation final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation) */ {
 public:
  inline ExternalDocumentation() : ExternalDocumentation(nullptr) {}
  ~ExternalDocumentation() override;
  template <typename = void>
  explicit PROTOBUF_CONSTEXPR ExternalDocumentation(
      ::google::protobuf::internal::ConstantInitialized);

  inline ExternalDocumentation(const ExternalDocumentation& from) : ExternalDocumentation(nullptr, from) {}
  inline ExternalDocumentation(ExternalDocumentation&& from) noexcept
      : ExternalDocumentation(nullptr, std::move(from)) {}
  inline ExternalDocumentation& operator=(const ExternalDocumentation& from) {
    CopyFrom(from);
    return *this;
  }
  inline ExternalDocumentation& operator=(ExternalDocumentation&& from) noexcept {
    if (this == &from) return *this;
    if (GetArena() == from.GetArena()
#ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetArena() != nullptr
#endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields()
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  static const ::google::protobuf::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::google::protobuf::Descriptor* GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  static const ::google::protobuf::Reflection* GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  static const ExternalDocumentation& default_instance() {
    return *internal_default_instance();
  }
  static inline const ExternalDocumentation* internal_default_instance() {
    return reinterpret_cast<const ExternalDocumentation*>(
        &_ExternalDocumentation_default_instance_);
  }
  static constexpr int kIndexInFileMessages = 15;
  friend void swap(ExternalDocumentation& a, ExternalDocumentation& b) { a.Swap(&b); }
  inline void Swap(ExternalDocumentation* other) {
    if (other == this) return;
#ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetArena() != nullptr && GetArena() == other->GetArena()) {
#else   // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetArena() == other->GetArena()) {
#endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(ExternalDocumentation* other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  ExternalDocumentation* New(::google::protobuf::Arena* arena = nullptr) const final {
    return ::google::protobuf::Message::DefaultConstruct<ExternalDocumentation>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const ExternalDocumentation& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const ExternalDocumentation& from) { ExternalDocumentation::MergeImpl(*this, from); }

  private:
  static void MergeImpl(
      ::google::protobuf::MessageLite& to_msg,
      const ::google::protobuf::MessageLite& from_msg);

  public:
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  ::size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::google::protobuf::internal::ParseContext* ctx) final;
  ::uint8_t* _InternalSerialize(
      ::uint8_t* target,
      ::google::protobuf::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const { return _impl_._cached_size_.Get(); }

  private:
  void SharedCtor(::google::protobuf::Arena* arena);
  void SharedDtor();
  void InternalSwap(ExternalDocumentation* other);
 private:
  friend class ::google::protobuf::internal::AnyMetadata;
  static ::absl::string_view FullMessageName() { return "grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation"; }

 protected:
  explicit ExternalDocumentation(::google::protobuf::Arena* arena);
  ExternalDocumentation(::google::protobuf::Arena* arena, const ExternalDocumentation& from);
  ExternalDocumentation(::google::protobuf::Arena* arena, ExternalDocumentation&& from) noexcept
      : ExternalDocumentation(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::MessageLite::ClassData* GetClassData()
      const final;

 public:
  ::google::protobuf::Metadata GetMetadata() const final;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kDescriptionFieldNumber = 1,
    kUrlFieldNumber = 2,
  };
  // string description = 1;
  void clear_description() ;
  const std::string& description() const;
  template <typename Arg_ = const std::string&, typename... Args_>
  void set_description(Arg_&& arg, Args_... args);
  std::string* mutable_description();
  PROTOBUF_NODISCARD std::string* release_description();
  void set_allocated_description(std::string* value);

  private:
  const std::string& _internal_description() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_description(
      const std::string& value);
  std::string* _internal_mutable_description();

  public:
  // string url = 2;
  void clear_url() ;
  const std::string& url() const;
  template <typename Arg_ = const std::string&, typename... Args_>
  void set_url(Arg_&& arg, Args_... args);
  std::string* mutable_url();
  PROTOBUF_NODISCARD std::string* release_url();
  void set_allocated_url(std::string* value);

  private:
  const std::string& _internal_url() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_url(
      const std::string& value);
  std::string* _internal_mutable_url();

  public:
  // @@protoc_insertion_point(class_scope:grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation)
 private:
  class _Internal;
  friend class ::google::protobuf::internal::TcParser;
  static const ::google::protobuf::internal::TcParseTable<
      1, 2, 0,
      86, 2>
      _table_;
  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(
        ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(::google::protobuf::internal::InternalVisibility visibility,
                          ::google::protobuf::Arena* arena);
    inline explicit Impl_(::google::protobuf::internal::InternalVisibility visibility,
                          ::google::protobuf::Arena* arena, const Impl_& from);
    ::google::protobuf::internal::ArenaStringPtr description_;
    ::google::protobuf::internal::ArenaStringPtr url_;
    mutable ::google::protobuf::internal::CachedSize _cached_size_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_protoc_2dgen_2dopenapiv2_2foptions_2fopenapiv2_2eproto;
};
// -------------------------------------------------------------------

class AGONES_EXPORT Contact final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:grpc.gateway.protoc_gen_openapiv2.options.Contact) */ {
 public:
  inline Contact() : Contact(nullptr) {}
  ~Contact() override;
  template <typename = void>
  explicit PROTOBUF_CONSTEXPR Contact(
      ::google::protobuf::internal::ConstantInitialized);

  inline Contact(const Contact& from) : Contact(nullptr, from) {}
  inline Contact(Contact&& from) noexcept
      : Contact(nullptr, std::move(from)) {}
  inline Contact& operator=(const Contact& from) {
    CopyFrom(from);
    return *this;
  }
  inline Contact& operator=(Contact&& from) noexcept {
    if (this == &from) return *this;
    if (GetArena() == from.GetArena()
#ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetArena() != nullptr
#endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields()
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  static const ::google::protobuf::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::google::protobuf::Descriptor* GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  static const ::google::protobuf::Reflection* GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  static const Contact& default_instance() {
    return *internal_default_instance();
  }
  static inline const Contact* internal_default_instance() {
    return reinterpret_cast<const Contact*>(
        &_Contact_default_instance_);
  }
  static constexpr int kIndexInFileMessages = 13;
  friend void swap(Contact& a, Contact& b) { a.Swap(&b); }
  inline void Swap(Contact* other) {
    if (other == this) return;
#ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetArena() != nullptr && GetArena() == other->GetArena()) {
#else   // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetArena() == other->GetArena()) {
#endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(Contact* other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  Contact* New(::google::protobuf::Arena* arena = nullptr) const final {
    return ::google::protobuf::Message::DefaultConstruct<Contact>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const Contact& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const Contact& from) { Contact::MergeImpl(*this, from); }

  private:
  static void MergeImpl(
      ::google::protobuf::MessageLite& to_msg,
      const ::google::protobuf::MessageLite& from_msg);

  public:
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  ::size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::google::protobuf::internal::ParseContext* ctx) final;
  ::uint8_t* _InternalSerialize(
      ::uint8_t* target,
      ::google::protobuf::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const { return _impl_._cached_size_.Get(); }

  private:
  void SharedCtor(::google::protobuf::Arena* arena);
  void SharedDtor();
  void InternalSwap(Contact* other);
 private:
  friend class ::google::protobuf::internal::AnyMetadata;
  static ::absl::string_view FullMessageName() { return "grpc.gateway.protoc_gen_openapiv2.options.Contact"; }

 protected:
  explicit Contact(::google::protobuf::Arena* arena);
  Contact(::google::protobuf::Arena* arena, const Contact& from);
  Contact(::google::protobuf::Arena* arena, Contact&& from) noexcept
      : Contact(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::MessageLite::ClassData* GetClassData()
      const final;

 public:
  ::google::protobuf::Metadata GetMetadata() const final;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kNameFieldNumber = 1,
    kUrlFieldNumber = 2,
    kEmailFieldNumber = 3,
  };
  // string name = 1;
  void clear_name() ;
  const std::string& name() const;
  template <typename Arg_ = const std::string&, typename... Args_>
  void set_name(Arg_&& arg, Args_... args);
  std::string* mutable_name();
  PROTOBUF_NODISCARD std::string* release_name();
  void set_allocated_name(std::string* value);

  private:
  const std::string& _internal_name() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_name(
      const std::string& value);
  std::string* _internal_mutable_name();

  public:
  // string url = 2;
  void clear_url() ;
  const std::string& url() const;
  template <typename Arg_ = const std::string&, typename... Args_>
  void set_url(Arg_&& arg, Args_... args);
  std::string* mutable_url();
  PROTOBUF_NODISCARD std::string* release_url();
  void set_allocated_url(std::string* value);

  private:
  const std::string& _internal_url() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_url(
      const std::string& value);
  std::string* _internal_mutable_url();

  public:
  // string email = 3;
  void clear_email() ;
  const std::string& email() const;
  template <typename Arg_ = const std::string&, typename... Args_>
  void set_email(Arg_&& arg, Args_... args);
  std::string* mutable_email();
  PROTOBUF_NODISCARD std::string* release_email();
  void set_allocated_email(std::string* value);

  private:
  const std::string& _internal_email() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_email(
      const std::string& value);
  std::string* _internal_mutable_email();

  public:
  // @@protoc_insertion_point(class_scope:grpc.gateway.protoc_gen_openapiv2.options.Contact)
 private:
  class _Internal;
  friend class ::google::protobuf::internal::TcParser;
  static const ::google::protobuf::internal::TcParseTable<
      2, 3, 0,
      70, 2>
      _table_;
  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(
        ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(::google::protobuf::internal::InternalVisibility visibility,
                          ::google::protobuf::Arena* arena);
    inline explicit Impl_(::google::protobuf::internal::InternalVisibility visibility,
                          ::google::protobuf::Arena* arena, const Impl_& from);
    ::google::protobuf::internal::ArenaStringPtr name_;
    ::google::protobuf::internal::ArenaStringPtr url_;
    ::google::protobuf::internal::ArenaStringPtr email_;
    mutable ::google::protobuf::internal::CachedSize _cached_size_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_protoc_2dgen_2dopenapiv2_2foptions_2fopenapiv2_2eproto;
};
// -------------------------------------------------------------------

class AGONES_EXPORT Tag final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:grpc.gateway.protoc_gen_openapiv2.options.Tag) */ {
 public:
  inline Tag() : Tag(nullptr) {}
  ~Tag() override;
  template <typename = void>
  explicit PROTOBUF_CONSTEXPR Tag(
      ::google::protobuf::internal::ConstantInitialized);

  inline Tag(const Tag& from) : Tag(nullptr, from) {}
  inline Tag(Tag&& from) noexcept
      : Tag(nullptr, std::move(from)) {}
  inline Tag& operator=(const Tag& from) {
    CopyFrom(from);
    return *this;
  }
  inline Tag& operator=(Tag&& from) noexcept {
    if (this == &from) return *this;
    if (GetArena() == from.GetArena()
#ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetArena() != nullptr
#endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields()
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  static const ::google::protobuf::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::google::protobuf::Descriptor* GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  static const ::google::protobuf::Reflection* GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  static const Tag& default_instance() {
    return *internal_default_instance();
  }
  static inline const Tag* internal_default_instance() {
    return reinterpret_cast<const Tag*>(
        &_Tag_default_instance_);
  }
  static constexpr int kIndexInFileMessages = 20;
  friend void swap(Tag& a, Tag& b) { a.Swap(&b); }
  inline void Swap(Tag* other) {
    if (other == this) return;
#ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetArena() != nullptr && GetArena() == other->GetArena()) {
#else   // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetArena() == other->GetArena()) {
#endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(Tag* other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  Tag* New(::google::protobuf::Arena* arena = nullptr) const final {
    return ::google::protobuf::Message::DefaultConstruct<Tag>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const Tag& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const Tag& from) { Tag::MergeImpl(*this, from); }

  private:
  static void MergeImpl(
      ::google::protobuf::MessageLite& to_msg,
      const ::google::protobuf::MessageLite& from_msg);

  public:
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  ::size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::google::protobuf::internal::ParseContext* ctx) final;
  ::uint8_t* _InternalSerialize(
      ::uint8_t* target,
      ::google::protobuf::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const { return _impl_._cached_size_.Get(); }

  private:
  void SharedCtor(::google::protobuf::Arena* arena);
  void SharedDtor();
  void InternalSwap(Tag* other);
 private:
  friend class ::google::protobuf::internal::AnyMetadata;
  static ::absl::string_view FullMessageName() { return "grpc.gateway.protoc_gen_openapiv2.options.Tag"; }

 protected:
  explicit Tag(::google::protobuf::Arena* arena);
  Tag(::google::protobuf::Arena* arena, const Tag& from);
  Tag(::google::protobuf::Arena* arena, Tag&& from) noexcept
      : Tag(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::MessageLite::ClassData* GetClassData()
      const final;

 public:
  ::google::protobuf::Metadata GetMetadata() const final;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kDescriptionFieldNumber = 2,
    kExternalDocsFieldNumber = 3,
  };
  // string description = 2;
  void clear_description() ;
  const std::string& description() const;
  template <typename Arg_ = const std::string&, typename... Args_>
  void set_description(Arg_&& arg, Args_... args);
  std::string* mutable_description();
  PROTOBUF_NODISCARD std::string* release_description();
  void set_allocated_description(std::string* value);

  private:
  const std::string& _internal_description() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_description(
      const std::string& value);
  std::string* _internal_mutable_description();

  public:
  // .grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation external_docs = 3;
  bool has_external_docs() const;
  void clear_external_docs() ;
  const ::grpc::gateway::protoc_gen_openapiv2::options::ExternalDocumentation& external_docs() const;
  PROTOBUF_NODISCARD ::grpc::gateway::protoc_gen_openapiv2::options::ExternalDocumentation* release_external_docs();
  ::grpc::gateway::protoc_gen_openapiv2::options::ExternalDocumentation* mutable_external_docs();
  void set_allocated_external_docs(::grpc::gateway::protoc_gen_openapiv2::options::ExternalDocumentation* value);
  void unsafe_arena_set_allocated_external_docs(::grpc::gateway::protoc_gen_openapiv2::options::ExternalDocumentation* value);
  ::grpc::gateway::protoc_gen_openapiv2::options::ExternalDocumentation* unsafe_arena_release_external_docs();

  private:
  const ::grpc::gateway::protoc_gen_openapiv2::options::ExternalDocumentation& _internal_external_docs() const;
  ::grpc::gateway::protoc_gen_openapiv2::options::ExternalDocumentation* _internal_mutable_external_docs();

  public:
  // @@protoc_insertion_point(class_scope:grpc.gateway.protoc_gen_openapiv2.options.Tag)
 private:
  class _Internal;
  friend class ::google::protobuf::internal::TcParser;
  static const ::google::protobuf::internal::TcParseTable<
      1, 2, 1,
      65, 2>
      _table_;
  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(
        ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(::google::protobuf::internal::InternalVisibility visibility,
                          ::google::protobuf::Arena* arena);
    inline explicit Impl_(::google::protobuf::internal::InternalVisibility visibility,
                          ::google::protobuf::Arena* arena, const Impl_& from);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    mutable ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::internal::ArenaStringPtr description_;
    ::grpc::gateway::protoc_gen_openapiv2::options::ExternalDocumentation* external_docs_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_protoc_2dgen_2dopenapiv2_2foptions_2fopenapiv2_2eproto;
};
// -------------------------------------------------------------------

class Swagger_ExtensionsEntry_DoNotUse final
    : public ::google::protobuf::internal::MapEntry<
          Swagger_ExtensionsEntry_DoNotUse, std::string, ::google::protobuf::Value,
          ::google::protobuf::internal::WireFormatLite::TYPE_STRING,
          ::google::protobuf::internal::WireFormatLite::TYPE_MESSAGE> {
 public:
  using SuperType = ::google::protobuf::internal::MapEntry<
      Swagger_ExtensionsEntry_DoNotUse, std::string, ::google::protobuf::Value,
      ::google::protobuf::internal::WireFormatLite::TYPE_STRING,
      ::google::protobuf::internal::WireFormatLite::TYPE_MESSAGE>;
  Swagger_ExtensionsEntry_DoNotUse();
  template <typename = void>
  explicit PROTOBUF_CONSTEXPR Swagger_ExtensionsEntry_DoNotUse(
      ::google::protobuf::internal::ConstantInitialized);
  explicit Swagger_ExtensionsEntry_DoNotUse(::google::protobuf::Arena* arena);
  static const Swagger_ExtensionsEntry_DoNotUse* internal_default_instance() {
    return reinterpret_cast<const Swagger_ExtensionsEntry_DoNotUse*>(
        &_Swagger_ExtensionsEntry_DoNotUse_default_instance_);
  }
  static bool ValidateKey(std::string* s) {
    return ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(s->data(), static_cast<int>(s->size()), ::google::protobuf::internal::WireFormatLite::PARSE, "grpc.gateway.protoc_gen_openapiv2.options.Swagger.ExtensionsEntry.key");
 }
  static bool ValidateValue(void*) { return true; }
  ::google::protobuf::Metadata GetMetadata() const final;
  friend struct ::TableStruct_protoc_2dgen_2dopenapiv2_2foptions_2fopenapiv2_2eproto;
};
// -------------------------------------------------------------------

class SecurityScheme_ExtensionsEntry_DoNotUse final
    : public ::google::protobuf::internal::MapEntry<
          SecurityScheme_ExtensionsEntry_DoNotUse, std::string, ::google::protobuf::Value,
          ::google::protobuf::internal::WireFormatLite::TYPE_STRING,
          ::google::protobuf::internal::WireFormatLite::TYPE_MESSAGE> {
 public:
  using SuperType = ::google::protobuf::internal::MapEntry<
      SecurityScheme_ExtensionsEntry_DoNotUse, std::string, ::google::protobuf::Value,
      ::google::protobuf::internal::WireFormatLite::TYPE_STRING,
      ::google::protobuf::internal::WireFormatLite::TYPE_MESSAGE>;
  SecurityScheme_ExtensionsEntry_DoNotUse();
  template <typename = void>
  explicit PROTOBUF_CONSTEXPR SecurityScheme_ExtensionsEntry_DoNotUse(
      ::google::protobuf::internal::ConstantInitialized);
  explicit SecurityScheme_ExtensionsEntry_DoNotUse(::google::protobuf::Arena* arena);
  static const SecurityScheme_ExtensionsEntry_DoNotUse* internal_default_instance() {
    return reinterpret_cast<const SecurityScheme_ExtensionsEntry_DoNotUse*>(
        &_SecurityScheme_ExtensionsEntry_DoNotUse_default_instance_);
  }
  static bool ValidateKey(std::string* s) {
    return ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(s->data(), static_cast<int>(s->size()), ::google::protobuf::internal::WireFormatLite::PARSE, "grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.ExtensionsEntry.key");
 }
  static bool ValidateValue(void*) { return true; }
  ::google::protobuf::Metadata GetMetadata() const final;
  friend struct ::TableStruct_protoc_2dgen_2dopenapiv2_2foptions_2fopenapiv2_2eproto;
};
// -------------------------------------------------------------------

class SecurityRequirement_SecurityRequirementEntry_DoNotUse final
    : public ::google::protobuf::internal::MapEntry<
          SecurityRequirement_SecurityRequirementEntry_DoNotUse, std::string, ::grpc::gateway::protoc_gen_openapiv2::options::SecurityRequirement_SecurityRequirementValue,
          ::google::protobuf::internal::WireFormatLite::TYPE_STRING,
          ::google::protobuf::internal::WireFormatLite::TYPE_MESSAGE> {
 public:
  using SuperType = ::google::protobuf::internal::MapEntry<
      SecurityRequirement_SecurityRequirementEntry_DoNotUse, std::string, ::grpc::gateway::protoc_gen_openapiv2::options::SecurityRequirement_SecurityRequirementValue,
      ::google::protobuf::internal::WireFormatLite::TYPE_STRING,
      ::google::protobuf::internal::WireFormatLite::TYPE_MESSAGE>;
  SecurityRequirement_SecurityRequirementEntry_DoNotUse();
  template <typename = void>
  explicit PROTOBUF_CONSTEXPR SecurityRequirement_SecurityRequirementEntry_DoNotUse(
      ::google::protobuf::internal::ConstantInitialized);
  explicit SecurityRequirement_SecurityRequirementEntry_DoNotUse(::google::protobuf::Arena* arena);
  static const SecurityRequirement_SecurityRequirementEntry_DoNotUse* internal_default_instance() {
    return reinterpret_cast<const SecurityRequirement_SecurityRequirementEntry_DoNotUse*>(
        &_SecurityRequirement_SecurityRequirementEntry_DoNotUse_default_instance_);
  }
  static bool ValidateKey(std::string* s) {
    return ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(s->data(), static_cast<int>(s->size()), ::google::protobuf::internal::WireFormatLite::PARSE, "grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementEntry.key");
 }
  static bool ValidateValue(void*) { return true; }
  ::google::protobuf::Metadata GetMetadata() const final;
  friend struct ::TableStruct_protoc_2dgen_2dopenapiv2_2foptions_2fopenapiv2_2eproto;
};
// -------------------------------------------------------------------

class AGONES_EXPORT Scopes final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:grpc.gateway.protoc_gen_openapiv2.options.Scopes) */ {
 public:
  inline Scopes() : Scopes(nullptr) {}
  ~Scopes() override;
  template <typename = void>
  explicit PROTOBUF_CONSTEXPR Scopes(
      ::google::protobuf::internal::ConstantInitialized);

  inline Scopes(const Scopes& from) : Scopes(nullptr, from) {}
  inline Scopes(Scopes&& from) noexcept
      : Scopes(nullptr, std::move(from)) {}
  inline Scopes& operator=(const Scopes& from) {
    CopyFrom(from);
    return *this;
  }
  inline Scopes& operator=(Scopes&& from) noexcept {
    if (this == &from) return *this;
    if (GetArena() == from.GetArena()
#ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetArena() != nullptr
#endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields()
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  static const ::google::protobuf::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::google::protobuf::Descriptor* GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  static const ::google::protobuf::Reflection* GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  static const Scopes& default_instance() {
    return *internal_default_instance();
  }
  static inline const Scopes* internal_default_instance() {
    return reinterpret_cast<const Scopes*>(
        &_Scopes_default_instance_);
  }
  static constexpr int kIndexInFileMessages = 29;
  friend void swap(Scopes& a, Scopes& b) { a.Swap(&b); }
  inline void Swap(Scopes* other) {
    if (other == this) return;
#ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetArena() != nullptr && GetArena() == other->GetArena()) {
#else   // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetArena() == other->GetArena()) {
#endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(Scopes* other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  Scopes* New(::google::protobuf::Arena* arena = nullptr) const final {
    return ::google::protobuf::Message::DefaultConstruct<Scopes>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const Scopes& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const Scopes& from) { Scopes::MergeImpl(*this, from); }

  private:
  static void MergeImpl(
      ::google::protobuf::MessageLite& to_msg,
      const ::google::protobuf::MessageLite& from_msg);

  public:
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  ::size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::google::protobuf::internal::ParseContext* ctx) final;
  ::uint8_t* _InternalSerialize(
      ::uint8_t* target,
      ::google::protobuf::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const { return _impl_._cached_size_.Get(); }

  private:
  void SharedCtor(::google::protobuf::Arena* arena);
  void SharedDtor();
  void InternalSwap(Scopes* other);
 private:
  friend class ::google::protobuf::internal::AnyMetadata;
  static ::absl::string_view FullMessageName() { return "grpc.gateway.protoc_gen_openapiv2.options.Scopes"; }

 protected:
  explicit Scopes(::google::protobuf::Arena* arena);
  Scopes(::google::protobuf::Arena* arena, const Scopes& from);
  Scopes(::google::protobuf::Arena* arena, Scopes&& from) noexcept
      : Scopes(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::MessageLite::ClassData* GetClassData()
      const final;

 public:
  ::google::protobuf::Metadata GetMetadata() const final;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kScopeFieldNumber = 1,
  };
  // map<string, string> scope = 1;
  int scope_size() const;
  private:
  int _internal_scope_size() const;

  public:
  void clear_scope() ;
  const ::google::protobuf::Map<std::string, std::string>& scope() const;
  ::google::protobuf::Map<std::string, std::string>* mutable_scope();

  private:
  const ::google::protobuf::Map<std::string, std::string>& _internal_scope() const;
  ::google::protobuf::Map<std::string, std::string>* _internal_mutable_scope();

  public:
  // @@protoc_insertion_point(class_scope:grpc.gateway.protoc_gen_openapiv2.options.Scopes)
 private:
  class _Internal;
  friend class ::google::protobuf::internal::TcParser;
  static const ::google::protobuf::internal::TcParseTable<
      0, 1, 1,
      62, 2>
      _table_;
  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(
        ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(::google::protobuf::internal::InternalVisibility visibility,
                          ::google::protobuf::Arena* arena);
    inline explicit Impl_(::google::protobuf::internal::InternalVisibility visibility,
                          ::google::protobuf::Arena* arena, const Impl_& from);
    ::google::protobuf::internal::MapField<Scopes_ScopeEntry_DoNotUse, std::string, std::string,
                      ::google::protobuf::internal::WireFormatLite::TYPE_STRING,
                      ::google::protobuf::internal::WireFormatLite::TYPE_STRING>
        scope_;
    mutable ::google::protobuf::internal::CachedSize _cached_size_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_protoc_2dgen_2dopenapiv2_2foptions_2fopenapiv2_2eproto;
};
// -------------------------------------------------------------------

class Response_HeadersEntry_DoNotUse final
    : public ::google::protobuf::internal::MapEntry<
          Response_HeadersEntry_DoNotUse, std::string, ::grpc::gateway::protoc_gen_openapiv2::options::Header,
          ::google::protobuf::internal::WireFormatLite::TYPE_STRING,
          ::google::protobuf::internal::WireFormatLite::TYPE_MESSAGE> {
 public:
  using SuperType = ::google::protobuf::internal::MapEntry<
      Response_HeadersEntry_DoNotUse, std::string, ::grpc::gateway::protoc_gen_openapiv2::options::Header,
      ::google::protobuf::internal::WireFormatLite::TYPE_STRING,
      ::google::protobuf::internal::WireFormatLite::TYPE_MESSAGE>;
  Response_HeadersEntry_DoNotUse();
  template <typename = void>
  explicit PROTOBUF_CONSTEXPR Response_HeadersEntry_DoNotUse(
      ::google::protobuf::internal::ConstantInitialized);
  explicit Response_HeadersEntry_DoNotUse(::google::protobuf::Arena* arena);
  static const Response_HeadersEntry_DoNotUse* internal_default_instance() {
    return reinterpret_cast<const Response_HeadersEntry_DoNotUse*>(
        &_Response_HeadersEntry_DoNotUse_default_instance_);
  }
  static bool ValidateKey(std::string* s) {
    return ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(s->data(), static_cast<int>(s->size()), ::google::protobuf::internal::WireFormatLite::PARSE, "grpc.gateway.protoc_gen_openapiv2.options.Response.HeadersEntry.key");
 }
  static bool ValidateValue(void*) { return true; }
  ::google::protobuf::Metadata GetMetadata() const final;
  friend struct ::TableStruct_protoc_2dgen_2dopenapiv2_2foptions_2fopenapiv2_2eproto;
};
// -------------------------------------------------------------------

class Response_ExtensionsEntry_DoNotUse final
    : public ::google::protobuf::internal::MapEntry<
          Response_ExtensionsEntry_DoNotUse, std::string, ::google::protobuf::Value,
          ::google::protobuf::internal::WireFormatLite::TYPE_STRING,
          ::google::protobuf::internal::WireFormatLite::TYPE_MESSAGE> {
 public:
  using SuperType = ::google::protobuf::internal::MapEntry<
      Response_ExtensionsEntry_DoNotUse, std::string, ::google::protobuf::Value,
      ::google::protobuf::internal::WireFormatLite::TYPE_STRING,
      ::google::protobuf::internal::WireFormatLite::TYPE_MESSAGE>;
  Response_ExtensionsEntry_DoNotUse();
  template <typename = void>
  explicit PROTOBUF_CONSTEXPR Response_ExtensionsEntry_DoNotUse(
      ::google::protobuf::internal::ConstantInitialized);
  explicit Response_ExtensionsEntry_DoNotUse(::google::protobuf::Arena* arena);
  static const Response_ExtensionsEntry_DoNotUse* internal_default_instance() {
    return reinterpret_cast<const Response_ExtensionsEntry_DoNotUse*>(
        &_Response_ExtensionsEntry_DoNotUse_default_instance_);
  }
  static bool ValidateKey(std::string* s) {
    return ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(s->data(), static_cast<int>(s->size()), ::google::protobuf::internal::WireFormatLite::PARSE, "grpc.gateway.protoc_gen_openapiv2.options.Response.ExtensionsEntry.key");
 }
  static bool ValidateValue(void*) { return true; }
  ::google::protobuf::Metadata GetMetadata() const final;
  friend struct ::TableStruct_protoc_2dgen_2dopenapiv2_2foptions_2fopenapiv2_2eproto;
};
// -------------------------------------------------------------------

class Operation_ExtensionsEntry_DoNotUse final
    : public ::google::protobuf::internal::MapEntry<
          Operation_ExtensionsEntry_DoNotUse, std::string, ::google::protobuf::Value,
          ::google::protobuf::internal::WireFormatLite::TYPE_STRING,
          ::google::protobuf::internal::WireFormatLite::TYPE_MESSAGE> {
 public:
  using SuperType = ::google::protobuf::internal::MapEntry<
      Operation_ExtensionsEntry_DoNotUse, std::string, ::google::protobuf::Value,
      ::google::protobuf::internal::WireFormatLite::TYPE_STRING,
      ::google::protobuf::internal::WireFormatLite::TYPE_MESSAGE>;
  Operation_ExtensionsEntry_DoNotUse();
  template <typename = void>
  explicit PROTOBUF_CONSTEXPR Operation_ExtensionsEntry_DoNotUse(
      ::google::protobuf::internal::ConstantInitialized);
  explicit Operation_ExtensionsEntry_DoNotUse(::google::protobuf::Arena* arena);
  static const Operation_ExtensionsEntry_DoNotUse* internal_default_instance() {
    return reinterpret_cast<const Operation_ExtensionsEntry_DoNotUse*>(
        &_Operation_ExtensionsEntry_DoNotUse_default_instance_);
  }
  static bool ValidateKey(std::string* s) {
    return ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(s->data(), static_cast<int>(s->size()), ::google::protobuf::internal::WireFormatLite::PARSE, "grpc.gateway.protoc_gen_openapiv2.options.Operation.ExtensionsEntry.key");
 }
  static bool ValidateValue(void*) { return true; }
  ::google::protobuf::Metadata GetMetadata() const final;
  friend struct ::TableStruct_protoc_2dgen_2dopenapiv2_2foptions_2fopenapiv2_2eproto;
};
// -------------------------------------------------------------------

class JSONSchema_ExtensionsEntry_DoNotUse final
    : public ::google::protobuf::internal::MapEntry<
          JSONSchema_ExtensionsEntry_DoNotUse, std::string, ::google::protobuf::Value,
          ::google::protobuf::internal::WireFormatLite::TYPE_STRING,
          ::google::protobuf::internal::WireFormatLite::TYPE_MESSAGE> {
 public:
  using SuperType = ::google::protobuf::internal::MapEntry<
      JSONSchema_ExtensionsEntry_DoNotUse, std::string, ::google::protobuf::Value,
      ::google::protobuf::internal::WireFormatLite::TYPE_STRING,
      ::google::protobuf::internal::WireFormatLite::TYPE_MESSAGE>;
  JSONSchema_ExtensionsEntry_DoNotUse();
  template <typename = void>
  explicit PROTOBUF_CONSTEXPR JSONSchema_ExtensionsEntry_DoNotUse(
      ::google::protobuf::internal::ConstantInitialized);
  explicit JSONSchema_ExtensionsEntry_DoNotUse(::google::protobuf::Arena* arena);
  static const JSONSchema_ExtensionsEntry_DoNotUse* internal_default_instance() {
    return reinterpret_cast<const JSONSchema_ExtensionsEntry_DoNotUse*>(
        &_JSONSchema_ExtensionsEntry_DoNotUse_default_instance_);
  }
  static bool ValidateKey(std::string* s) {
    return ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(s->data(), static_cast<int>(s->size()), ::google::protobuf::internal::WireFormatLite::PARSE, "grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.ExtensionsEntry.key");
 }
  static bool ValidateValue(void*) { return true; }
  ::google::protobuf::Metadata GetMetadata() const final;
  friend struct ::TableStruct_protoc_2dgen_2dopenapiv2_2foptions_2fopenapiv2_2eproto;
};
// -------------------------------------------------------------------

class Info_ExtensionsEntry_DoNotUse final
    : public ::google::protobuf::internal::MapEntry<
          Info_ExtensionsEntry_DoNotUse, std::string, ::google::protobuf::Value,
          ::google::protobuf::internal::WireFormatLite::TYPE_STRING,
          ::google::protobuf::internal::WireFormatLite::TYPE_MESSAGE> {
 public:
  using SuperType = ::google::protobuf::internal::MapEntry<
      Info_ExtensionsEntry_DoNotUse, std::string, ::google::protobuf::Value,
      ::google::protobuf::internal::WireFormatLite::TYPE_STRING,
      ::google::protobuf::internal::WireFormatLite::TYPE_MESSAGE>;
  Info_ExtensionsEntry_DoNotUse();
  template <typename = void>
  explicit PROTOBUF_CONSTEXPR Info_ExtensionsEntry_DoNotUse(
      ::google::protobuf::internal::ConstantInitialized);
  explicit Info_ExtensionsEntry_DoNotUse(::google::protobuf::Arena* arena);
  static const Info_ExtensionsEntry_DoNotUse* internal_default_instance() {
    return reinterpret_cast<const Info_ExtensionsEntry_DoNotUse*>(
        &_Info_ExtensionsEntry_DoNotUse_default_instance_);
  }
  static bool ValidateKey(std::string* s) {
    return ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(s->data(), static_cast<int>(s->size()), ::google::protobuf::internal::WireFormatLite::PARSE, "grpc.gateway.protoc_gen_openapiv2.options.Info.ExtensionsEntry.key");
 }
  static bool ValidateValue(void*) { return true; }
  ::google::protobuf::Metadata GetMetadata() const final;
  friend struct ::TableStruct_protoc_2dgen_2dopenapiv2_2foptions_2fopenapiv2_2eproto;
};
// -------------------------------------------------------------------

class AGONES_EXPORT SecurityScheme final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme) */ {
 public:
  inline SecurityScheme() : SecurityScheme(nullptr) {}
  ~SecurityScheme() override;
  template <typename = void>
  explicit PROTOBUF_CONSTEXPR SecurityScheme(
      ::google::protobuf::internal::ConstantInitialized);

  inline SecurityScheme(const SecurityScheme& from) : SecurityScheme(nullptr, from) {}
  inline SecurityScheme(SecurityScheme&& from) noexcept
      : SecurityScheme(nullptr, std::move(from)) {}
  inline SecurityScheme& operator=(const SecurityScheme& from) {
    CopyFrom(from);
    return *this;
  }
  inline SecurityScheme& operator=(SecurityScheme&& from) noexcept {
    if (this == &from) return *this;
    if (GetArena() == from.GetArena()
#ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetArena() != nullptr
#endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields()
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  static const ::google::protobuf::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::google::protobuf::Descriptor* GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  static const ::google::protobuf::Reflection* GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  static const SecurityScheme& default_instance() {
    return *internal_default_instance();
  }
  static inline const SecurityScheme* internal_default_instance() {
    return reinterpret_cast<const SecurityScheme*>(
        &_SecurityScheme_default_instance_);
  }
  static constexpr int kIndexInFileMessages = 24;
  friend void swap(SecurityScheme& a, SecurityScheme& b) { a.Swap(&b); }
  inline void Swap(SecurityScheme* other) {
    if (other == this) return;
#ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetArena() != nullptr && GetArena() == other->GetArena()) {
#else   // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetArena() == other->GetArena()) {
#endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(SecurityScheme* other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  SecurityScheme* New(::google::protobuf::Arena* arena = nullptr) const final {
    return ::google::protobuf::Message::DefaultConstruct<SecurityScheme>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const SecurityScheme& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const SecurityScheme& from) { SecurityScheme::MergeImpl(*this, from); }

  private:
  static void MergeImpl(
      ::google::protobuf::MessageLite& to_msg,
      const ::google::protobuf::MessageLite& from_msg);

  public:
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  ::size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::google::protobuf::internal::ParseContext* ctx) final;
  ::uint8_t* _InternalSerialize(
      ::uint8_t* target,
      ::google::protobuf::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const { return _impl_._cached_size_.Get(); }

  private:
  void SharedCtor(::google::protobuf::Arena* arena);
  void SharedDtor();
  void InternalSwap(SecurityScheme* other);
 private:
  friend class ::google::protobuf::internal::AnyMetadata;
  static ::absl::string_view FullMessageName() { return "grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme"; }

 protected:
  explicit SecurityScheme(::google::protobuf::Arena* arena);
  SecurityScheme(::google::protobuf::Arena* arena, const SecurityScheme& from);
  SecurityScheme(::google::protobuf::Arena* arena, SecurityScheme&& from) noexcept
      : SecurityScheme(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::MessageLite::ClassData* GetClassData()
      const final;

 public:
  ::google::protobuf::Metadata GetMetadata() const final;
  // nested types ----------------------------------------------------
  using Type = SecurityScheme_Type;
  static constexpr Type TYPE_INVALID = SecurityScheme_Type_TYPE_INVALID;
  static constexpr Type TYPE_BASIC = SecurityScheme_Type_TYPE_BASIC;
  static constexpr Type TYPE_API_KEY = SecurityScheme_Type_TYPE_API_KEY;
  static constexpr Type TYPE_OAUTH2 = SecurityScheme_Type_TYPE_OAUTH2;
  static inline bool Type_IsValid(int value) {
    return SecurityScheme_Type_IsValid(value);
  }
  static constexpr Type Type_MIN = SecurityScheme_Type_Type_MIN;
  static constexpr Type Type_MAX = SecurityScheme_Type_Type_MAX;
  static constexpr int Type_ARRAYSIZE = SecurityScheme_Type_Type_ARRAYSIZE;
  static inline const ::google::protobuf::EnumDescriptor* Type_descriptor() {
    return SecurityScheme_Type_descriptor();
  }
  template <typename T>
  static inline const std::string& Type_Name(T value) {
    return SecurityScheme_Type_Name(value);
  }
  static inline bool Type_Parse(absl::string_view name, Type* value) {
    return SecurityScheme_Type_Parse(name, value);
  }
  using In = SecurityScheme_In;
  static constexpr In IN_INVALID = SecurityScheme_In_IN_INVALID;
  static constexpr In IN_QUERY = SecurityScheme_In_IN_QUERY;
  static constexpr In IN_HEADER = SecurityScheme_In_IN_HEADER;
  static inline bool In_IsValid(int value) {
    return SecurityScheme_In_IsValid(value);
  }
  static constexpr In In_MIN = SecurityScheme_In_In_MIN;
  static constexpr In In_MAX = SecurityScheme_In_In_MAX;
  static constexpr int In_ARRAYSIZE = SecurityScheme_In_In_ARRAYSIZE;
  static inline const ::google::protobuf::EnumDescriptor* In_descriptor() {
    return SecurityScheme_In_descriptor();
  }
  template <typename T>
  static inline const std::string& In_Name(T value) {
    return SecurityScheme_In_Name(value);
  }
  static inline bool In_Parse(absl::string_view name, In* value) {
    return SecurityScheme_In_Parse(name, value);
  }
  using Flow = SecurityScheme_Flow;
  static constexpr Flow FLOW_INVALID = SecurityScheme_Flow_FLOW_INVALID;
  static constexpr Flow FLOW_IMPLICIT = SecurityScheme_Flow_FLOW_IMPLICIT;
  static constexpr Flow FLOW_PASSWORD = SecurityScheme_Flow_FLOW_PASSWORD;
  static constexpr Flow FLOW_APPLICATION = SecurityScheme_Flow_FLOW_APPLICATION;
  static constexpr Flow FLOW_ACCESS_CODE = SecurityScheme_Flow_FLOW_ACCESS_CODE;
  static inline bool Flow_IsValid(int value) {
    return SecurityScheme_Flow_IsValid(value);
  }
  static constexpr Flow Flow_MIN = SecurityScheme_Flow_Flow_MIN;
  static constexpr Flow Flow_MAX = SecurityScheme_Flow_Flow_MAX;
  static constexpr int Flow_ARRAYSIZE = SecurityScheme_Flow_Flow_ARRAYSIZE;
  static inline const ::google::protobuf::EnumDescriptor* Flow_descriptor() {
    return SecurityScheme_Flow_descriptor();
  }
  template <typename T>
  static inline const std::string& Flow_Name(T value) {
    return SecurityScheme_Flow_Name(value);
  }
  static inline bool Flow_Parse(absl::string_view name, Flow* value) {
    return SecurityScheme_Flow_Parse(name, value);
  }

  // accessors -------------------------------------------------------
  enum : int {
    kExtensionsFieldNumber = 9,
    kDescriptionFieldNumber = 2,
    kNameFieldNumber = 3,
    kAuthorizationUrlFieldNumber = 6,
    kTokenUrlFieldNumber = 7,
    kScopesFieldNumber = 8,
    kTypeFieldNumber = 1,
    kInFieldNumber = 4,
    kFlowFieldNumber = 5,
  };
  // map<string, .google.protobuf.Value> extensions = 9;
  int extensions_size() const;
  private:
  int _internal_extensions_size() const;

  public:
  void clear_extensions() ;
  const ::google::protobuf::Map<std::string, ::google::protobuf::Value>& extensions() const;
  ::google::protobuf::Map<std::string, ::google::protobuf::Value>* mutable_extensions();

  private:
  const ::google::protobuf::Map<std::string, ::google::protobuf::Value>& _internal_extensions() const;
  ::google::protobuf::Map<std::string, ::google::protobuf::Value>* _internal_mutable_extensions();

  public:
  // string description = 2;
  void clear_description() ;
  const std::string& description() const;
  template <typename Arg_ = const std::string&, typename... Args_>
  void set_description(Arg_&& arg, Args_... args);
  std::string* mutable_description();
  PROTOBUF_NODISCARD std::string* release_description();
  void set_allocated_description(std::string* value);

  private:
  const std::string& _internal_description() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_description(
      const std::string& value);
  std::string* _internal_mutable_description();

  public:
  // string name = 3;
  void clear_name() ;
  const std::string& name() const;
  template <typename Arg_ = const std::string&, typename... Args_>
  void set_name(Arg_&& arg, Args_... args);
  std::string* mutable_name();
  PROTOBUF_NODISCARD std::string* release_name();
  void set_allocated_name(std::string* value);

  private:
  const std::string& _internal_name() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_name(
      const std::string& value);
  std::string* _internal_mutable_name();

  public:
  // string authorization_url = 6;
  void clear_authorization_url() ;
  const std::string& authorization_url() const;
  template <typename Arg_ = const std::string&, typename... Args_>
  void set_authorization_url(Arg_&& arg, Args_... args);
  std::string* mutable_authorization_url();
  PROTOBUF_NODISCARD std::string* release_authorization_url();
  void set_allocated_authorization_url(std::string* value);

  private:
  const std::string& _internal_authorization_url() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_authorization_url(
      const std::string& value);
  std::string* _internal_mutable_authorization_url();

  public:
  // string token_url = 7;
  void clear_token_url() ;
  const std::string& token_url() const;
  template <typename Arg_ = const std::string&, typename... Args_>
  void set_token_url(Arg_&& arg, Args_... args);
  std::string* mutable_token_url();
  PROTOBUF_NODISCARD std::string* release_token_url();
  void set_allocated_token_url(std::string* value);

  private:
  const std::string& _internal_token_url() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_token_url(
      const std::string& value);
  std::string* _internal_mutable_token_url();

  public:
  // .grpc.gateway.protoc_gen_openapiv2.options.Scopes scopes = 8;
  bool has_scopes() const;
  void clear_scopes() ;
  const ::grpc::gateway::protoc_gen_openapiv2::options::Scopes& scopes() const;
  PROTOBUF_NODISCARD ::grpc::gateway::protoc_gen_openapiv2::options::Scopes* release_scopes();
  ::grpc::gateway::protoc_gen_openapiv2::options::Scopes* mutable_scopes();
  void set_allocated_scopes(::grpc::gateway::protoc_gen_openapiv2::options::Scopes* value);
  void unsafe_arena_set_allocated_scopes(::grpc::gateway::protoc_gen_openapiv2::options::Scopes* value);
  ::grpc::gateway::protoc_gen_openapiv2::options::Scopes* unsafe_arena_release_scopes();

  private:
  const ::grpc::gateway::protoc_gen_openapiv2::options::Scopes& _internal_scopes() const;
  ::grpc::gateway::protoc_gen_openapiv2::options::Scopes* _internal_mutable_scopes();

  public:
  // .grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.Type type = 1;
  void clear_type() ;
  ::grpc::gateway::protoc_gen_openapiv2::options::SecurityScheme_Type type() const;
  void set_type(::grpc::gateway::protoc_gen_openapiv2::options::SecurityScheme_Type value);

  private:
  ::grpc::gateway::protoc_gen_openapiv2::options::SecurityScheme_Type _internal_type() const;
  void _internal_set_type(::grpc::gateway::protoc_gen_openapiv2::options::SecurityScheme_Type value);

  public:
  // .grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.In in = 4;
  void clear_in() ;
  ::grpc::gateway::protoc_gen_openapiv2::options::SecurityScheme_In in() const;
  void set_in(::grpc::gateway::protoc_gen_openapiv2::options::SecurityScheme_In value);

  private:
  ::grpc::gateway::protoc_gen_openapiv2::options::SecurityScheme_In _internal_in() const;
  void _internal_set_in(::grpc::gateway::protoc_gen_openapiv2::options::SecurityScheme_In value);

  public:
  // .grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.Flow flow = 5;
  void clear_flow() ;
  ::grpc::gateway::protoc_gen_openapiv2::options::SecurityScheme_Flow flow() const;
  void set_flow(::grpc::gateway::protoc_gen_openapiv2::options::SecurityScheme_Flow value);

  private:
  ::grpc::gateway::protoc_gen_openapiv2::options::SecurityScheme_Flow _internal_flow() const;
  void _internal_set_flow(::grpc::gateway::protoc_gen_openapiv2::options::SecurityScheme_Flow value);

  public:
  // @@protoc_insertion_point(class_scope:grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme)
 private:
  class _Internal;
  friend class ::google::protobuf::internal::TcParser;
  static const ::google::protobuf::internal::TcParseTable<
      3, 9, 3,
      124, 2>
      _table_;
  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(
        ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(::google::protobuf::internal::InternalVisibility visibility,
                          ::google::protobuf::Arena* arena);
    inline explicit Impl_(::google::protobuf::internal::InternalVisibility visibility,
                          ::google::protobuf::Arena* arena, const Impl_& from);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    mutable ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::internal::MapField<SecurityScheme_ExtensionsEntry_DoNotUse, std::string, ::google::protobuf::Value,
                      ::google::protobuf::internal::WireFormatLite::TYPE_STRING,
                      ::google::protobuf::internal::WireFormatLite::TYPE_MESSAGE>
        extensions_;
    ::google::protobuf::internal::ArenaStringPtr description_;
    ::google::protobuf::internal::ArenaStringPtr name_;
    ::google::protobuf::internal::ArenaStringPtr authorization_url_;
    ::google::protobuf::internal::ArenaStringPtr token_url_;
    ::grpc::gateway::protoc_gen_openapiv2::options::Scopes* scopes_;
    int type_;
    int in_;
    int flow_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_protoc_2dgen_2dopenapiv2_2foptions_2fopenapiv2_2eproto;
};
// -------------------------------------------------------------------

class AGONES_EXPORT SecurityRequirement final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement) */ {
 public:
  inline SecurityRequirement() : SecurityRequirement(nullptr) {}
  ~SecurityRequirement() override;
  template <typename = void>
  explicit PROTOBUF_CONSTEXPR SecurityRequirement(
      ::google::protobuf::internal::ConstantInitialized);

  inline SecurityRequirement(const SecurityRequirement& from) : SecurityRequirement(nullptr, from) {}
  inline SecurityRequirement(SecurityRequirement&& from) noexcept
      : SecurityRequirement(nullptr, std::move(from)) {}
  inline SecurityRequirement& operator=(const SecurityRequirement& from) {
    CopyFrom(from);
    return *this;
  }
  inline SecurityRequirement& operator=(SecurityRequirement&& from) noexcept {
    if (this == &from) return *this;
    if (GetArena() == from.GetArena()
#ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetArena() != nullptr
#endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields()
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  static const ::google::protobuf::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::google::protobuf::Descriptor* GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  static const ::google::protobuf::Reflection* GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  static const SecurityRequirement& default_instance() {
    return *internal_default_instance();
  }
  static inline const SecurityRequirement* internal_default_instance() {
    return reinterpret_cast<const SecurityRequirement*>(
        &_SecurityRequirement_default_instance_);
  }
  static constexpr int kIndexInFileMessages = 27;
  friend void swap(SecurityRequirement& a, SecurityRequirement& b) { a.Swap(&b); }
  inline void Swap(SecurityRequirement* other) {
    if (other == this) return;
#ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetArena() != nullptr && GetArena() == other->GetArena()) {
#else   // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetArena() == other->GetArena()) {
#endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(SecurityRequirement* other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  SecurityRequirement* New(::google::protobuf::Arena* arena = nullptr) const final {
    return ::google::protobuf::Message::DefaultConstruct<SecurityRequirement>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const SecurityRequirement& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const SecurityRequirement& from) { SecurityRequirement::MergeImpl(*this, from); }

  private:
  static void MergeImpl(
      ::google::protobuf::MessageLite& to_msg,
      const ::google::protobuf::MessageLite& from_msg);

  public:
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  ::size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::google::protobuf::internal::ParseContext* ctx) final;
  ::uint8_t* _InternalSerialize(
      ::uint8_t* target,
      ::google::protobuf::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const { return _impl_._cached_size_.Get(); }

  private:
  void SharedCtor(::google::protobuf::Arena* arena);
  void SharedDtor();
  void InternalSwap(SecurityRequirement* other);
 private:
  friend class ::google::protobuf::internal::AnyMetadata;
  static ::absl::string_view FullMessageName() { return "grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement"; }

 protected:
  explicit SecurityRequirement(::google::protobuf::Arena* arena);
  SecurityRequirement(::google::protobuf::Arena* arena, const SecurityRequirement& from);
  SecurityRequirement(::google::protobuf::Arena* arena, SecurityRequirement&& from) noexcept
      : SecurityRequirement(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::MessageLite::ClassData* GetClassData()
      const final;

 public:
  ::google::protobuf::Metadata GetMetadata() const final;
  // nested types ----------------------------------------------------
  using SecurityRequirementValue = SecurityRequirement_SecurityRequirementValue;

  // accessors -------------------------------------------------------
  enum : int {
    kSecurityRequirementFieldNumber = 1,
  };
  // map<string, .grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue> security_requirement = 1;
  int security_requirement_size() const;
  private:
  int _internal_security_requirement_size() const;

  public:
  void clear_security_requirement() ;
  const ::google::protobuf::Map<std::string, ::grpc::gateway::protoc_gen_openapiv2::options::SecurityRequirement_SecurityRequirementValue>& security_requirement() const;
  ::google::protobuf::Map<std::string, ::grpc::gateway::protoc_gen_openapiv2::options::SecurityRequirement_SecurityRequirementValue>* mutable_security_requirement();

  private:
  const ::google::protobuf::Map<std::string, ::grpc::gateway::protoc_gen_openapiv2::options::SecurityRequirement_SecurityRequirementValue>& _internal_security_requirement() const;
  ::google::protobuf::Map<std::string, ::grpc::gateway::protoc_gen_openapiv2::options::SecurityRequirement_SecurityRequirementValue>* _internal_mutable_security_requirement();

  public:
  // @@protoc_insertion_point(class_scope:grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement)
 private:
  class _Internal;
  friend class ::google::protobuf::internal::TcParser;
  static const ::google::protobuf::internal::TcParseTable<
      0, 1, 2,
      90, 2>
      _table_;
  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(
        ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(::google::protobuf::internal::InternalVisibility visibility,
                          ::google::protobuf::Arena* arena);
    inline explicit Impl_(::google::protobuf::internal::InternalVisibility visibility,
                          ::google::protobuf::Arena* arena, const Impl_& from);
    ::google::protobuf::internal::MapField<SecurityRequirement_SecurityRequirementEntry_DoNotUse, std::string, ::grpc::gateway::protoc_gen_openapiv2::options::SecurityRequirement_SecurityRequirementValue,
                      ::google::protobuf::internal::WireFormatLite::TYPE_STRING,
                      ::google::protobuf::internal::WireFormatLite::TYPE_MESSAGE>
        security_requirement_;
    mutable ::google::protobuf::internal::CachedSize _cached_size_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_protoc_2dgen_2dopenapiv2_2foptions_2fopenapiv2_2eproto;
};
// -------------------------------------------------------------------

class AGONES_EXPORT JSONSchema final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:grpc.gateway.protoc_gen_openapiv2.options.JSONSchema) */ {
 public:
  inline JSONSchema() : JSONSchema(nullptr) {}
  ~JSONSchema() override;
  template <typename = void>
  explicit PROTOBUF_CONSTEXPR JSONSchema(
      ::google::protobuf::internal::ConstantInitialized);

  inline JSONSchema(const JSONSchema& from) : JSONSchema(nullptr, from) {}
  inline JSONSchema(JSONSchema&& from) noexcept
      : JSONSchema(nullptr, std::move(from)) {}
  inline JSONSchema& operator=(const JSONSchema& from) {
    CopyFrom(from);
    return *this;
  }
  inline JSONSchema& operator=(JSONSchema&& from) noexcept {
    if (this == &from) return *this;
    if (GetArena() == from.GetArena()
#ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetArena() != nullptr
#endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields()
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  static const ::google::protobuf::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::google::protobuf::Descriptor* GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  static const ::google::protobuf::Reflection* GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  static const JSONSchema& default_instance() {
    return *internal_default_instance();
  }
  static inline const JSONSchema* internal_default_instance() {
    return reinterpret_cast<const JSONSchema*>(
        &_JSONSchema_default_instance_);
  }
  static constexpr int kIndexInFileMessages = 19;
  friend void swap(JSONSchema& a, JSONSchema& b) { a.Swap(&b); }
  inline void Swap(JSONSchema* other) {
    if (other == this) return;
#ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetArena() != nullptr && GetArena() == other->GetArena()) {
#else   // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetArena() == other->GetArena()) {
#endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(JSONSchema* other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  JSONSchema* New(::google::protobuf::Arena* arena = nullptr) const final {
    return ::google::protobuf::Message::DefaultConstruct<JSONSchema>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const JSONSchema& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const JSONSchema& from) { JSONSchema::MergeImpl(*this, from); }

  private:
  static void MergeImpl(
      ::google::protobuf::MessageLite& to_msg,
      const ::google::protobuf::MessageLite& from_msg);

  public:
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  ::size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::google::protobuf::internal::ParseContext* ctx) final;
  ::uint8_t* _InternalSerialize(
      ::uint8_t* target,
      ::google::protobuf::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const { return _impl_._cached_size_.Get(); }

  private:
  void SharedCtor(::google::protobuf::Arena* arena);
  void SharedDtor();
  void InternalSwap(JSONSchema* other);
 private:
  friend class ::google::protobuf::internal::AnyMetadata;
  static ::absl::string_view FullMessageName() { return "grpc.gateway.protoc_gen_openapiv2.options.JSONSchema"; }

 protected:
  explicit JSONSchema(::google::protobuf::Arena* arena);
  JSONSchema(::google::protobuf::Arena* arena, const JSONSchema& from);
  JSONSchema(::google::protobuf::Arena* arena, JSONSchema&& from) noexcept
      : JSONSchema(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::MessageLite::ClassData* GetClassData()
      const final;

 public:
  ::google::protobuf::Metadata GetMetadata() const final;
  // nested types ----------------------------------------------------
  using FieldConfiguration = JSONSchema_FieldConfiguration;
  using JSONSchemaSimpleTypes = JSONSchema_JSONSchemaSimpleTypes;
  static constexpr JSONSchemaSimpleTypes UNKNOWN = JSONSchema_JSONSchemaSimpleTypes_UNKNOWN;
  static constexpr JSONSchemaSimpleTypes ARRAY = JSONSchema_JSONSchemaSimpleTypes_ARRAY;
  static constexpr JSONSchemaSimpleTypes BOOLEAN = JSONSchema_JSONSchemaSimpleTypes_BOOLEAN;
  static constexpr JSONSchemaSimpleTypes INTEGER = JSONSchema_JSONSchemaSimpleTypes_INTEGER;
  static constexpr JSONSchemaSimpleTypes NULL_ = JSONSchema_JSONSchemaSimpleTypes_NULL_;
  static constexpr JSONSchemaSimpleTypes NUMBER = JSONSchema_JSONSchemaSimpleTypes_NUMBER;
  static constexpr JSONSchemaSimpleTypes OBJECT = JSONSchema_JSONSchemaSimpleTypes_OBJECT;
  static constexpr JSONSchemaSimpleTypes STRING = JSONSchema_JSONSchemaSimpleTypes_STRING;
  static inline bool JSONSchemaSimpleTypes_IsValid(int value) {
    return JSONSchema_JSONSchemaSimpleTypes_IsValid(value);
  }
  static constexpr JSONSchemaSimpleTypes JSONSchemaSimpleTypes_MIN = JSONSchema_JSONSchemaSimpleTypes_JSONSchemaSimpleTypes_MIN;
  static constexpr JSONSchemaSimpleTypes JSONSchemaSimpleTypes_MAX = JSONSchema_JSONSchemaSimpleTypes_JSONSchemaSimpleTypes_MAX;
  static constexpr int JSONSchemaSimpleTypes_ARRAYSIZE = JSONSchema_JSONSchemaSimpleTypes_JSONSchemaSimpleTypes_ARRAYSIZE;
  static inline const ::google::protobuf::EnumDescriptor* JSONSchemaSimpleTypes_descriptor() {
    return JSONSchema_JSONSchemaSimpleTypes_descriptor();
  }
  template <typename T>
  static inline const std::string& JSONSchemaSimpleTypes_Name(T value) {
    return JSONSchema_JSONSchemaSimpleTypes_Name(value);
  }
  static inline bool JSONSchemaSimpleTypes_Parse(absl::string_view name, JSONSchemaSimpleTypes* value) {
    return JSONSchema_JSONSchemaSimpleTypes_Parse(name, value);
  }

  // accessors -------------------------------------------------------
  enum : int {
    kRequiredFieldNumber = 26,
    kArrayFieldNumber = 34,
    kTypeFieldNumber = 35,
    kEnumFieldNumber = 46,
    kExtensionsFieldNumber = 48,
    kRefFieldNumber = 3,
    kTitleFieldNumber = 5,
    kDescriptionFieldNumber = 6,
    kDefaultFieldNumber = 7,
    kExampleFieldNumber = 9,
    kPatternFieldNumber = 17,
    kFormatFieldNumber = 36,
    kFieldConfigurationFieldNumber = 1001,
    kMultipleOfFieldNumber = 10,
    kMaximumFieldNumber = 11,
    kMinimumFieldNumber = 13,
    kMaxLengthFieldNumber = 15,
    kMinLengthFieldNumber = 16,
    kMaxItemsFieldNumber = 20,
    kMinItemsFieldNumber = 21,
    kMaxPropertiesFieldNumber = 24,
    kMinPropertiesFieldNumber = 25,
    kReadOnlyFieldNumber = 8,
    kExclusiveMaximumFieldNumber = 12,
    kExclusiveMinimumFieldNumber = 14,
    kUniqueItemsFieldNumber = 22,
  };
  // repeated string required = 26;
  int required_size() const;
  private:
  int _internal_required_size() const;

  public:
  void clear_required() ;
  const std::string& required(int index) const;
  std::string* mutable_required(int index);
  void set_required(int index, const std::string& value);
  void set_required(int index, std::string&& value);
  void set_required(int index, const char* value);
  void set_required(int index, const char* value, std::size_t size);
  void set_required(int index, absl::string_view value);
  std::string* add_required();
  void add_required(const std::string& value);
  void add_required(std::string&& value);
  void add_required(const char* value);
  void add_required(const char* value, std::size_t size);
  void add_required(absl::string_view value);
  const ::google::protobuf::RepeatedPtrField<std::string>& required() const;
  ::google::protobuf::RepeatedPtrField<std::string>* mutable_required();

  private:
  const ::google::protobuf::RepeatedPtrField<std::string>& _internal_required() const;
  ::google::protobuf::RepeatedPtrField<std::string>* _internal_mutable_required();

  public:
  // repeated string array = 34;
  int array_size() const;
  private:
  int _internal_array_size() const;

  public:
  void clear_array() ;
  const std::string& array(int index) const;
  std::string* mutable_array(int index);
  void set_array(int index, const std::string& value);
  void set_array(int index, std::string&& value);
  void set_array(int index, const char* value);
  void set_array(int index, const char* value, std::size_t size);
  void set_array(int index, absl::string_view value);
  std::string* add_array();
  void add_array(const std::string& value);
  void add_array(std::string&& value);
  void add_array(const char* value);
  void add_array(const char* value, std::size_t size);
  void add_array(absl::string_view value);
  const ::google::protobuf::RepeatedPtrField<std::string>& array() const;
  ::google::protobuf::RepeatedPtrField<std::string>* mutable_array();

  private:
  const ::google::protobuf::RepeatedPtrField<std::string>& _internal_array() const;
  ::google::protobuf::RepeatedPtrField<std::string>* _internal_mutable_array();

  public:
  // repeated .grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.JSONSchemaSimpleTypes type = 35;
  int type_size() const;
  private:
  int _internal_type_size() const;

  public:
  void clear_type() ;
  public:
  ::grpc::gateway::protoc_gen_openapiv2::options::JSONSchema_JSONSchemaSimpleTypes type(int index) const;
  void set_type(int index, ::grpc::gateway::protoc_gen_openapiv2::options::JSONSchema_JSONSchemaSimpleTypes value);
  void add_type(::grpc::gateway::protoc_gen_openapiv2::options::JSONSchema_JSONSchemaSimpleTypes value);
  const ::google::protobuf::RepeatedField<int>& type() const;
  ::google::protobuf::RepeatedField<int>* mutable_type();

  private:
  const ::google::protobuf::RepeatedField<int>& _internal_type() const;
  ::google::protobuf::RepeatedField<int>* _internal_mutable_type();

  public:
  // repeated string enum = 46;
  int enum__size() const;
  private:
  int _internal_enum__size() const;

  public:
  void clear_enum_() ;
  const std::string& enum_(int index) const;
  std::string* mutable_enum_(int index);
  void set_enum_(int index, const std::string& value);
  void set_enum_(int index, std::string&& value);
  void set_enum_(int index, const char* value);
  void set_enum_(int index, const char* value, std::size_t size);
  void set_enum_(int index, absl::string_view value);
  std::string* add_enum_();
  void add_enum_(const std::string& value);
  void add_enum_(std::string&& value);
  void add_enum_(const char* value);
  void add_enum_(const char* value, std::size_t size);
  void add_enum_(absl::string_view value);
  const ::google::protobuf::RepeatedPtrField<std::string>& enum_() const;
  ::google::protobuf::RepeatedPtrField<std::string>* mutable_enum_();

  private:
  const ::google::protobuf::RepeatedPtrField<std::string>& _internal_enum_() const;
  ::google::protobuf::RepeatedPtrField<std::string>* _internal_mutable_enum_();

  public:
  // map<string, .google.protobuf.Value> extensions = 48;
  int extensions_size() const;
  private:
  int _internal_extensions_size() const;

  public:
  void clear_extensions() ;
  const ::google::protobuf::Map<std::string, ::google::protobuf::Value>& extensions() const;
  ::google::protobuf::Map<std::string, ::google::protobuf::Value>* mutable_extensions();

  private:
  const ::google::protobuf::Map<std::string, ::google::protobuf::Value>& _internal_extensions() const;
  ::google::protobuf::Map<std::string, ::google::protobuf::Value>* _internal_mutable_extensions();

  public:
  // string ref = 3;
  void clear_ref() ;
  const std::string& ref() const;
  template <typename Arg_ = const std::string&, typename... Args_>
  void set_ref(Arg_&& arg, Args_... args);
  std::string* mutable_ref();
  PROTOBUF_NODISCARD std::string* release_ref();
  void set_allocated_ref(std::string* value);

  private:
  const std::string& _internal_ref() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_ref(
      const std::string& value);
  std::string* _internal_mutable_ref();

  public:
  // string title = 5;
  void clear_title() ;
  const std::string& title() const;
  template <typename Arg_ = const std::string&, typename... Args_>
  void set_title(Arg_&& arg, Args_... args);
  std::string* mutable_title();
  PROTOBUF_NODISCARD std::string* release_title();
  void set_allocated_title(std::string* value);

  private:
  const std::string& _internal_title() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_title(
      const std::string& value);
  std::string* _internal_mutable_title();

  public:
  // string description = 6;
  void clear_description() ;
  const std::string& description() const;
  template <typename Arg_ = const std::string&, typename... Args_>
  void set_description(Arg_&& arg, Args_... args);
  std::string* mutable_description();
  PROTOBUF_NODISCARD std::string* release_description();
  void set_allocated_description(std::string* value);

  private:
  const std::string& _internal_description() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_description(
      const std::string& value);
  std::string* _internal_mutable_description();

  public:
  // string default = 7;
  void clear_default_() ;
  const std::string& default_() const;
  template <typename Arg_ = const std::string&, typename... Args_>
  void set_default_(Arg_&& arg, Args_... args);
  std::string* mutable_default_();
  PROTOBUF_NODISCARD std::string* release_default_();
  void set_allocated_default_(std::string* value);

  private:
  const std::string& _internal_default_() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_default_(
      const std::string& value);
  std::string* _internal_mutable_default_();

  public:
  // string example = 9;
  void clear_example() ;
  const std::string& example() const;
  template <typename Arg_ = const std::string&, typename... Args_>
  void set_example(Arg_&& arg, Args_... args);
  std::string* mutable_example();
  PROTOBUF_NODISCARD std::string* release_example();
  void set_allocated_example(std::string* value);

  private:
  const std::string& _internal_example() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_example(
      const std::string& value);
  std::string* _internal_mutable_example();

  public:
  // string pattern = 17;
  void clear_pattern() ;
  const std::string& pattern() const;
  template <typename Arg_ = const std::string&, typename... Args_>
  void set_pattern(Arg_&& arg, Args_... args);
  std::string* mutable_pattern();
  PROTOBUF_NODISCARD std::string* release_pattern();
  void set_allocated_pattern(std::string* value);

  private:
  const std::string& _internal_pattern() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_pattern(
      const std::string& value);
  std::string* _internal_mutable_pattern();

  public:
  // string format = 36;
  void clear_format() ;
  const std::string& format() const;
  template <typename Arg_ = const std::string&, typename... Args_>
  void set_format(Arg_&& arg, Args_... args);
  std::string* mutable_format();
  PROTOBUF_NODISCARD std::string* release_format();
  void set_allocated_format(std::string* value);

  private:
  const std::string& _internal_format() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_format(
      const std::string& value);
  std::string* _internal_mutable_format();

  public:
  // .grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.FieldConfiguration field_configuration = 1001;
  bool has_field_configuration() const;
  void clear_field_configuration() ;
  const ::grpc::gateway::protoc_gen_openapiv2::options::JSONSchema_FieldConfiguration& field_configuration() const;
  PROTOBUF_NODISCARD ::grpc::gateway::protoc_gen_openapiv2::options::JSONSchema_FieldConfiguration* release_field_configuration();
  ::grpc::gateway::protoc_gen_openapiv2::options::JSONSchema_FieldConfiguration* mutable_field_configuration();
  void set_allocated_field_configuration(::grpc::gateway::protoc_gen_openapiv2::options::JSONSchema_FieldConfiguration* value);
  void unsafe_arena_set_allocated_field_configuration(::grpc::gateway::protoc_gen_openapiv2::options::JSONSchema_FieldConfiguration* value);
  ::grpc::gateway::protoc_gen_openapiv2::options::JSONSchema_FieldConfiguration* unsafe_arena_release_field_configuration();

  private:
  const ::grpc::gateway::protoc_gen_openapiv2::options::JSONSchema_FieldConfiguration& _internal_field_configuration() const;
  ::grpc::gateway::protoc_gen_openapiv2::options::JSONSchema_FieldConfiguration* _internal_mutable_field_configuration();

  public:
  // double multiple_of = 10;
  void clear_multiple_of() ;
  double multiple_of() const;
  void set_multiple_of(double value);

  private:
  double _internal_multiple_of() const;
  void _internal_set_multiple_of(double value);

  public:
  // double maximum = 11;
  void clear_maximum() ;
  double maximum() const;
  void set_maximum(double value);

  private:
  double _internal_maximum() const;
  void _internal_set_maximum(double value);

  public:
  // double minimum = 13;
  void clear_minimum() ;
  double minimum() const;
  void set_minimum(double value);

  private:
  double _internal_minimum() const;
  void _internal_set_minimum(double value);

  public:
  // uint64 max_length = 15;
  void clear_max_length() ;
  ::uint64_t max_length() const;
  void set_max_length(::uint64_t value);

  private:
  ::uint64_t _internal_max_length() const;
  void _internal_set_max_length(::uint64_t value);

  public:
  // uint64 min_length = 16;
  void clear_min_length() ;
  ::uint64_t min_length() const;
  void set_min_length(::uint64_t value);

  private:
  ::uint64_t _internal_min_length() const;
  void _internal_set_min_length(::uint64_t value);

  public:
  // uint64 max_items = 20;
  void clear_max_items() ;
  ::uint64_t max_items() const;
  void set_max_items(::uint64_t value);

  private:
  ::uint64_t _internal_max_items() const;
  void _internal_set_max_items(::uint64_t value);

  public:
  // uint64 min_items = 21;
  void clear_min_items() ;
  ::uint64_t min_items() const;
  void set_min_items(::uint64_t value);

  private:
  ::uint64_t _internal_min_items() const;
  void _internal_set_min_items(::uint64_t value);

  public:
  // uint64 max_properties = 24;
  void clear_max_properties() ;
  ::uint64_t max_properties() const;
  void set_max_properties(::uint64_t value);

  private:
  ::uint64_t _internal_max_properties() const;
  void _internal_set_max_properties(::uint64_t value);

  public:
  // uint64 min_properties = 25;
  void clear_min_properties() ;
  ::uint64_t min_properties() const;
  void set_min_properties(::uint64_t value);

  private:
  ::uint64_t _internal_min_properties() const;
  void _internal_set_min_properties(::uint64_t value);

  public:
  // bool read_only = 8;
  void clear_read_only() ;
  bool read_only() const;
  void set_read_only(bool value);

  private:
  bool _internal_read_only() const;
  void _internal_set_read_only(bool value);

  public:
  // bool exclusive_maximum = 12;
  void clear_exclusive_maximum() ;
  bool exclusive_maximum() const;
  void set_exclusive_maximum(bool value);

  private:
  bool _internal_exclusive_maximum() const;
  void _internal_set_exclusive_maximum(bool value);

  public:
  // bool exclusive_minimum = 14;
  void clear_exclusive_minimum() ;
  bool exclusive_minimum() const;
  void set_exclusive_minimum(bool value);

  private:
  bool _internal_exclusive_minimum() const;
  void _internal_set_exclusive_minimum(bool value);

  public:
  // bool unique_items = 22;
  void clear_unique_items() ;
  bool unique_items() const;
  void set_unique_items(bool value);

  private:
  bool _internal_unique_items() const;
  void _internal_set_unique_items(bool value);

  public:
  // @@protoc_insertion_point(class_scope:grpc.gateway.protoc_gen_openapiv2.options.JSONSchema)
 private:
  class _Internal;
  friend class ::google::protobuf::internal::TcParser;
  static const ::google::protobuf::internal::TcParseTable<
      5, 26, 3,
      158, 12>
      _table_;
  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(
        ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(::google::protobuf::internal::InternalVisibility visibility,
                          ::google::protobuf::Arena* arena);
    inline explicit Impl_(::google::protobuf::internal::InternalVisibility visibility,
                          ::google::protobuf::Arena* arena, const Impl_& from);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    mutable ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::RepeatedPtrField<std::string> required_;
    ::google::protobuf::RepeatedPtrField<std::string> array_;
    ::google::protobuf::RepeatedField<int> type_;
    mutable ::google::protobuf::internal::CachedSize _type_cached_byte_size_;
    ::google::protobuf::RepeatedPtrField<std::string> enum__;
    ::google::protobuf::internal::MapField<JSONSchema_ExtensionsEntry_DoNotUse, std::string, ::google::protobuf::Value,
                      ::google::protobuf::internal::WireFormatLite::TYPE_STRING,
                      ::google::protobuf::internal::WireFormatLite::TYPE_MESSAGE>
        extensions_;
    ::google::protobuf::internal::ArenaStringPtr ref_;
    ::google::protobuf::internal::ArenaStringPtr title_;
    ::google::protobuf::internal::ArenaStringPtr description_;
    ::google::protobuf::internal::ArenaStringPtr default__;
    ::google::protobuf::internal::ArenaStringPtr example_;
    ::google::protobuf::internal::ArenaStringPtr pattern_;
    ::google::protobuf::internal::ArenaStringPtr format_;
    ::grpc::gateway::protoc_gen_openapiv2::options::JSONSchema_FieldConfiguration* field_configuration_;
    double multiple_of_;
    double maximum_;
    double minimum_;
    ::uint64_t max_length_;
    ::uint64_t min_length_;
    ::uint64_t max_items_;
    ::uint64_t min_items_;
    ::uint64_t max_properties_;
    ::uint64_t min_properties_;
    bool read_only_;
    bool exclusive_maximum_;
    bool exclusive_minimum_;
    bool unique_items_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_protoc_2dgen_2dopenapiv2_2foptions_2fopenapiv2_2eproto;
};
// -------------------------------------------------------------------

class AGONES_EXPORT Info final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:grpc.gateway.protoc_gen_openapiv2.options.Info) */ {
 public:
  inline Info() : Info(nullptr) {}
  ~Info() override;
  template <typename = void>
  explicit PROTOBUF_CONSTEXPR Info(
      ::google::protobuf::internal::ConstantInitialized);

  inline Info(const Info& from) : Info(nullptr, from) {}
  inline Info(Info&& from) noexcept
      : Info(nullptr, std::move(from)) {}
  inline Info& operator=(const Info& from) {
    CopyFrom(from);
    return *this;
  }
  inline Info& operator=(Info&& from) noexcept {
    if (this == &from) return *this;
    if (GetArena() == from.GetArena()
#ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetArena() != nullptr
#endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields()
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  static const ::google::protobuf::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::google::protobuf::Descriptor* GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  static const ::google::protobuf::Reflection* GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  static const Info& default_instance() {
    return *internal_default_instance();
  }
  static inline const Info* internal_default_instance() {
    return reinterpret_cast<const Info*>(
        &_Info_default_instance_);
  }
  static constexpr int kIndexInFileMessages = 12;
  friend void swap(Info& a, Info& b) { a.Swap(&b); }
  inline void Swap(Info* other) {
    if (other == this) return;
#ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetArena() != nullptr && GetArena() == other->GetArena()) {
#else   // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetArena() == other->GetArena()) {
#endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(Info* other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  Info* New(::google::protobuf::Arena* arena = nullptr) const final {
    return ::google::protobuf::Message::DefaultConstruct<Info>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const Info& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const Info& from) { Info::MergeImpl(*this, from); }

  private:
  static void MergeImpl(
      ::google::protobuf::MessageLite& to_msg,
      const ::google::protobuf::MessageLite& from_msg);

  public:
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  ::size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::google::protobuf::internal::ParseContext* ctx) final;
  ::uint8_t* _InternalSerialize(
      ::uint8_t* target,
      ::google::protobuf::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const { return _impl_._cached_size_.Get(); }

  private:
  void SharedCtor(::google::protobuf::Arena* arena);
  void SharedDtor();
  void InternalSwap(Info* other);
 private:
  friend class ::google::protobuf::internal::AnyMetadata;
  static ::absl::string_view FullMessageName() { return "grpc.gateway.protoc_gen_openapiv2.options.Info"; }

 protected:
  explicit Info(::google::protobuf::Arena* arena);
  Info(::google::protobuf::Arena* arena, const Info& from);
  Info(::google::protobuf::Arena* arena, Info&& from) noexcept
      : Info(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::MessageLite::ClassData* GetClassData()
      const final;

 public:
  ::google::protobuf::Metadata GetMetadata() const final;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kExtensionsFieldNumber = 7,
    kTitleFieldNumber = 1,
    kDescriptionFieldNumber = 2,
    kTermsOfServiceFieldNumber = 3,
    kVersionFieldNumber = 6,
    kContactFieldNumber = 4,
    kLicenseFieldNumber = 5,
  };
  // map<string, .google.protobuf.Value> extensions = 7;
  int extensions_size() const;
  private:
  int _internal_extensions_size() const;

  public:
  void clear_extensions() ;
  const ::google::protobuf::Map<std::string, ::google::protobuf::Value>& extensions() const;
  ::google::protobuf::Map<std::string, ::google::protobuf::Value>* mutable_extensions();

  private:
  const ::google::protobuf::Map<std::string, ::google::protobuf::Value>& _internal_extensions() const;
  ::google::protobuf::Map<std::string, ::google::protobuf::Value>* _internal_mutable_extensions();

  public:
  // string title = 1;
  void clear_title() ;
  const std::string& title() const;
  template <typename Arg_ = const std::string&, typename... Args_>
  void set_title(Arg_&& arg, Args_... args);
  std::string* mutable_title();
  PROTOBUF_NODISCARD std::string* release_title();
  void set_allocated_title(std::string* value);

  private:
  const std::string& _internal_title() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_title(
      const std::string& value);
  std::string* _internal_mutable_title();

  public:
  // string description = 2;
  void clear_description() ;
  const std::string& description() const;
  template <typename Arg_ = const std::string&, typename... Args_>
  void set_description(Arg_&& arg, Args_... args);
  std::string* mutable_description();
  PROTOBUF_NODISCARD std::string* release_description();
  void set_allocated_description(std::string* value);

  private:
  const std::string& _internal_description() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_description(
      const std::string& value);
  std::string* _internal_mutable_description();

  public:
  // string terms_of_service = 3;
  void clear_terms_of_service() ;
  const std::string& terms_of_service() const;
  template <typename Arg_ = const std::string&, typename... Args_>
  void set_terms_of_service(Arg_&& arg, Args_... args);
  std::string* mutable_terms_of_service();
  PROTOBUF_NODISCARD std::string* release_terms_of_service();
  void set_allocated_terms_of_service(std::string* value);

  private:
  const std::string& _internal_terms_of_service() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_terms_of_service(
      const std::string& value);
  std::string* _internal_mutable_terms_of_service();

  public:
  // string version = 6;
  void clear_version() ;
  const std::string& version() const;
  template <typename Arg_ = const std::string&, typename... Args_>
  void set_version(Arg_&& arg, Args_... args);
  std::string* mutable_version();
  PROTOBUF_NODISCARD std::string* release_version();
  void set_allocated_version(std::string* value);

  private:
  const std::string& _internal_version() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_version(
      const std::string& value);
  std::string* _internal_mutable_version();

  public:
  // .grpc.gateway.protoc_gen_openapiv2.options.Contact contact = 4;
  bool has_contact() const;
  void clear_contact() ;
  const ::grpc::gateway::protoc_gen_openapiv2::options::Contact& contact() const;
  PROTOBUF_NODISCARD ::grpc::gateway::protoc_gen_openapiv2::options::Contact* release_contact();
  ::grpc::gateway::protoc_gen_openapiv2::options::Contact* mutable_contact();
  void set_allocated_contact(::grpc::gateway::protoc_gen_openapiv2::options::Contact* value);
  void unsafe_arena_set_allocated_contact(::grpc::gateway::protoc_gen_openapiv2::options::Contact* value);
  ::grpc::gateway::protoc_gen_openapiv2::options::Contact* unsafe_arena_release_contact();

  private:
  const ::grpc::gateway::protoc_gen_openapiv2::options::Contact& _internal_contact() const;
  ::grpc::gateway::protoc_gen_openapiv2::options::Contact* _internal_mutable_contact();

  public:
  // .grpc.gateway.protoc_gen_openapiv2.options.License license = 5;
  bool has_license() const;
  void clear_license() ;
  const ::grpc::gateway::protoc_gen_openapiv2::options::License& license() const;
  PROTOBUF_NODISCARD ::grpc::gateway::protoc_gen_openapiv2::options::License* release_license();
  ::grpc::gateway::protoc_gen_openapiv2::options::License* mutable_license();
  void set_allocated_license(::grpc::gateway::protoc_gen_openapiv2::options::License* value);
  void unsafe_arena_set_allocated_license(::grpc::gateway::protoc_gen_openapiv2::options::License* value);
  ::grpc::gateway::protoc_gen_openapiv2::options::License* unsafe_arena_release_license();

  private:
  const ::grpc::gateway::protoc_gen_openapiv2::options::License& _internal_license() const;
  ::grpc::gateway::protoc_gen_openapiv2::options::License* _internal_mutable_license();

  public:
  // @@protoc_insertion_point(class_scope:grpc.gateway.protoc_gen_openapiv2.options.Info)
 private:
  class _Internal;
  friend class ::google::protobuf::internal::TcParser;
  static const ::google::protobuf::internal::TcParseTable<
      3, 7, 4,
      104, 2>
      _table_;
  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(
        ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(::google::protobuf::internal::InternalVisibility visibility,
                          ::google::protobuf::Arena* arena);
    inline explicit Impl_(::google::protobuf::internal::InternalVisibility visibility,
                          ::google::protobuf::Arena* arena, const Impl_& from);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    mutable ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::internal::MapField<Info_ExtensionsEntry_DoNotUse, std::string, ::google::protobuf::Value,
                      ::google::protobuf::internal::WireFormatLite::TYPE_STRING,
                      ::google::protobuf::internal::WireFormatLite::TYPE_MESSAGE>
        extensions_;
    ::google::protobuf::internal::ArenaStringPtr title_;
    ::google::protobuf::internal::ArenaStringPtr description_;
    ::google::protobuf::internal::ArenaStringPtr terms_of_service_;
    ::google::protobuf::internal::ArenaStringPtr version_;
    ::grpc::gateway::protoc_gen_openapiv2::options::Contact* contact_;
    ::grpc::gateway::protoc_gen_openapiv2::options::License* license_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_protoc_2dgen_2dopenapiv2_2foptions_2fopenapiv2_2eproto;
};
// -------------------------------------------------------------------

class SecurityDefinitions_SecurityEntry_DoNotUse final
    : public ::google::protobuf::internal::MapEntry<
          SecurityDefinitions_SecurityEntry_DoNotUse, std::string, ::grpc::gateway::protoc_gen_openapiv2::options::SecurityScheme,
          ::google::protobuf::internal::WireFormatLite::TYPE_STRING,
          ::google::protobuf::internal::WireFormatLite::TYPE_MESSAGE> {
 public:
  using SuperType = ::google::protobuf::internal::MapEntry<
      SecurityDefinitions_SecurityEntry_DoNotUse, std::string, ::grpc::gateway::protoc_gen_openapiv2::options::SecurityScheme,
      ::google::protobuf::internal::WireFormatLite::TYPE_STRING,
      ::google::protobuf::internal::WireFormatLite::TYPE_MESSAGE>;
  SecurityDefinitions_SecurityEntry_DoNotUse();
  template <typename = void>
  explicit PROTOBUF_CONSTEXPR SecurityDefinitions_SecurityEntry_DoNotUse(
      ::google::protobuf::internal::ConstantInitialized);
  explicit SecurityDefinitions_SecurityEntry_DoNotUse(::google::protobuf::Arena* arena);
  static const SecurityDefinitions_SecurityEntry_DoNotUse* internal_default_instance() {
    return reinterpret_cast<const SecurityDefinitions_SecurityEntry_DoNotUse*>(
        &_SecurityDefinitions_SecurityEntry_DoNotUse_default_instance_);
  }
  static bool ValidateKey(std::string* s) {
    return ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(s->data(), static_cast<int>(s->size()), ::google::protobuf::internal::WireFormatLite::PARSE, "grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions.SecurityEntry.key");
 }
  static bool ValidateValue(void*) { return true; }
  ::google::protobuf::Metadata GetMetadata() const final;
  friend struct ::TableStruct_protoc_2dgen_2dopenapiv2_2foptions_2fopenapiv2_2eproto;
};
// -------------------------------------------------------------------

class AGONES_EXPORT Schema final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:grpc.gateway.protoc_gen_openapiv2.options.Schema) */ {
 public:
  inline Schema() : Schema(nullptr) {}
  ~Schema() override;
  template <typename = void>
  explicit PROTOBUF_CONSTEXPR Schema(
      ::google::protobuf::internal::ConstantInitialized);

  inline Schema(const Schema& from) : Schema(nullptr, from) {}
  inline Schema(Schema&& from) noexcept
      : Schema(nullptr, std::move(from)) {}
  inline Schema& operator=(const Schema& from) {
    CopyFrom(from);
    return *this;
  }
  inline Schema& operator=(Schema&& from) noexcept {
    if (this == &from) return *this;
    if (GetArena() == from.GetArena()
#ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetArena() != nullptr
#endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields()
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  static const ::google::protobuf::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::google::protobuf::Descriptor* GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  static const ::google::protobuf::Reflection* GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  static const Schema& default_instance() {
    return *internal_default_instance();
  }
  static inline const Schema* internal_default_instance() {
    return reinterpret_cast<const Schema*>(
        &_Schema_default_instance_);
  }
  static constexpr int kIndexInFileMessages = 16;
  friend void swap(Schema& a, Schema& b) { a.Swap(&b); }
  inline void Swap(Schema* other) {
    if (other == this) return;
#ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetArena() != nullptr && GetArena() == other->GetArena()) {
#else   // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetArena() == other->GetArena()) {
#endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(Schema* other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  Schema* New(::google::protobuf::Arena* arena = nullptr) const final {
    return ::google::protobuf::Message::DefaultConstruct<Schema>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const Schema& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const Schema& from) { Schema::MergeImpl(*this, from); }

  private:
  static void MergeImpl(
      ::google::protobuf::MessageLite& to_msg,
      const ::google::protobuf::MessageLite& from_msg);

  public:
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  ::size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::google::protobuf::internal::ParseContext* ctx) final;
  ::uint8_t* _InternalSerialize(
      ::uint8_t* target,
      ::google::protobuf::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const { return _impl_._cached_size_.Get(); }

  private:
  void SharedCtor(::google::protobuf::Arena* arena);
  void SharedDtor();
  void InternalSwap(Schema* other);
 private:
  friend class ::google::protobuf::internal::AnyMetadata;
  static ::absl::string_view FullMessageName() { return "grpc.gateway.protoc_gen_openapiv2.options.Schema"; }

 protected:
  explicit Schema(::google::protobuf::Arena* arena);
  Schema(::google::protobuf::Arena* arena, const Schema& from);
  Schema(::google::protobuf::Arena* arena, Schema&& from) noexcept
      : Schema(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::MessageLite::ClassData* GetClassData()
      const final;

 public:
  ::google::protobuf::Metadata GetMetadata() const final;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kDiscriminatorFieldNumber = 2,
    kExampleFieldNumber = 6,
    kJsonSchemaFieldNumber = 1,
    kExternalDocsFieldNumber = 5,
    kReadOnlyFieldNumber = 3,
  };
  // string discriminator = 2;
  void clear_discriminator() ;
  const std::string& discriminator() const;
  template <typename Arg_ = const std::string&, typename... Args_>
  void set_discriminator(Arg_&& arg, Args_... args);
  std::string* mutable_discriminator();
  PROTOBUF_NODISCARD std::string* release_discriminator();
  void set_allocated_discriminator(std::string* value);

  private:
  const std::string& _internal_discriminator() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_discriminator(
      const std::string& value);
  std::string* _internal_mutable_discriminator();

  public:
  // string example = 6;
  void clear_example() ;
  const std::string& example() const;
  template <typename Arg_ = const std::string&, typename... Args_>
  void set_example(Arg_&& arg, Args_... args);
  std::string* mutable_example();
  PROTOBUF_NODISCARD std::string* release_example();
  void set_allocated_example(std::string* value);

  private:
  const std::string& _internal_example() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_example(
      const std::string& value);
  std::string* _internal_mutable_example();

  public:
  // .grpc.gateway.protoc_gen_openapiv2.options.JSONSchema json_schema = 1;
  bool has_json_schema() const;
  void clear_json_schema() ;
  const ::grpc::gateway::protoc_gen_openapiv2::options::JSONSchema& json_schema() const;
  PROTOBUF_NODISCARD ::grpc::gateway::protoc_gen_openapiv2::options::JSONSchema* release_json_schema();
  ::grpc::gateway::protoc_gen_openapiv2::options::JSONSchema* mutable_json_schema();
  void set_allocated_json_schema(::grpc::gateway::protoc_gen_openapiv2::options::JSONSchema* value);
  void unsafe_arena_set_allocated_json_schema(::grpc::gateway::protoc_gen_openapiv2::options::JSONSchema* value);
  ::grpc::gateway::protoc_gen_openapiv2::options::JSONSchema* unsafe_arena_release_json_schema();

  private:
  const ::grpc::gateway::protoc_gen_openapiv2::options::JSONSchema& _internal_json_schema() const;
  ::grpc::gateway::protoc_gen_openapiv2::options::JSONSchema* _internal_mutable_json_schema();

  public:
  // .grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation external_docs = 5;
  bool has_external_docs() const;
  void clear_external_docs() ;
  const ::grpc::gateway::protoc_gen_openapiv2::options::ExternalDocumentation& external_docs() const;
  PROTOBUF_NODISCARD ::grpc::gateway::protoc_gen_openapiv2::options::ExternalDocumentation* release_external_docs();
  ::grpc::gateway::protoc_gen_openapiv2::options::ExternalDocumentation* mutable_external_docs();
  void set_allocated_external_docs(::grpc::gateway::protoc_gen_openapiv2::options::ExternalDocumentation* value);
  void unsafe_arena_set_allocated_external_docs(::grpc::gateway::protoc_gen_openapiv2::options::ExternalDocumentation* value);
  ::grpc::gateway::protoc_gen_openapiv2::options::ExternalDocumentation* unsafe_arena_release_external_docs();

  private:
  const ::grpc::gateway::protoc_gen_openapiv2::options::ExternalDocumentation& _internal_external_docs() const;
  ::grpc::gateway::protoc_gen_openapiv2::options::ExternalDocumentation* _internal_mutable_external_docs();

  public:
  // bool read_only = 3;
  void clear_read_only() ;
  bool read_only() const;
  void set_read_only(bool value);

  private:
  bool _internal_read_only() const;
  void _internal_set_read_only(bool value);

  public:
  // @@protoc_insertion_point(class_scope:grpc.gateway.protoc_gen_openapiv2.options.Schema)
 private:
  class _Internal;
  friend class ::google::protobuf::internal::TcParser;
  static const ::google::protobuf::internal::TcParseTable<
      3, 5, 2,
      77, 2>
      _table_;
  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(
        ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(::google::protobuf::internal::InternalVisibility visibility,
                          ::google::protobuf::Arena* arena);
    inline explicit Impl_(::google::protobuf::internal::InternalVisibility visibility,
                          ::google::protobuf::Arena* arena, const Impl_& from);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    mutable ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::internal::ArenaStringPtr discriminator_;
    ::google::protobuf::internal::ArenaStringPtr example_;
    ::grpc::gateway::protoc_gen_openapiv2::options::JSONSchema* json_schema_;
    ::grpc::gateway::protoc_gen_openapiv2::options::ExternalDocumentation* external_docs_;
    bool read_only_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_protoc_2dgen_2dopenapiv2_2foptions_2fopenapiv2_2eproto;
};
// -------------------------------------------------------------------

class AGONES_EXPORT SecurityDefinitions final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions) */ {
 public:
  inline SecurityDefinitions() : SecurityDefinitions(nullptr) {}
  ~SecurityDefinitions() override;
  template <typename = void>
  explicit PROTOBUF_CONSTEXPR SecurityDefinitions(
      ::google::protobuf::internal::ConstantInitialized);

  inline SecurityDefinitions(const SecurityDefinitions& from) : SecurityDefinitions(nullptr, from) {}
  inline SecurityDefinitions(SecurityDefinitions&& from) noexcept
      : SecurityDefinitions(nullptr, std::move(from)) {}
  inline SecurityDefinitions& operator=(const SecurityDefinitions& from) {
    CopyFrom(from);
    return *this;
  }
  inline SecurityDefinitions& operator=(SecurityDefinitions&& from) noexcept {
    if (this == &from) return *this;
    if (GetArena() == from.GetArena()
#ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetArena() != nullptr
#endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields()
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  static const ::google::protobuf::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::google::protobuf::Descriptor* GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  static const ::google::protobuf::Reflection* GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  static const SecurityDefinitions& default_instance() {
    return *internal_default_instance();
  }
  static inline const SecurityDefinitions* internal_default_instance() {
    return reinterpret_cast<const SecurityDefinitions*>(
        &_SecurityDefinitions_default_instance_);
  }
  static constexpr int kIndexInFileMessages = 22;
  friend void swap(SecurityDefinitions& a, SecurityDefinitions& b) { a.Swap(&b); }
  inline void Swap(SecurityDefinitions* other) {
    if (other == this) return;
#ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetArena() != nullptr && GetArena() == other->GetArena()) {
#else   // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetArena() == other->GetArena()) {
#endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(SecurityDefinitions* other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  SecurityDefinitions* New(::google::protobuf::Arena* arena = nullptr) const final {
    return ::google::protobuf::Message::DefaultConstruct<SecurityDefinitions>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const SecurityDefinitions& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const SecurityDefinitions& from) { SecurityDefinitions::MergeImpl(*this, from); }

  private:
  static void MergeImpl(
      ::google::protobuf::MessageLite& to_msg,
      const ::google::protobuf::MessageLite& from_msg);

  public:
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  ::size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::google::protobuf::internal::ParseContext* ctx) final;
  ::uint8_t* _InternalSerialize(
      ::uint8_t* target,
      ::google::protobuf::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const { return _impl_._cached_size_.Get(); }

  private:
  void SharedCtor(::google::protobuf::Arena* arena);
  void SharedDtor();
  void InternalSwap(SecurityDefinitions* other);
 private:
  friend class ::google::protobuf::internal::AnyMetadata;
  static ::absl::string_view FullMessageName() { return "grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions"; }

 protected:
  explicit SecurityDefinitions(::google::protobuf::Arena* arena);
  SecurityDefinitions(::google::protobuf::Arena* arena, const SecurityDefinitions& from);
  SecurityDefinitions(::google::protobuf::Arena* arena, SecurityDefinitions&& from) noexcept
      : SecurityDefinitions(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::MessageLite::ClassData* GetClassData()
      const final;

 public:
  ::google::protobuf::Metadata GetMetadata() const final;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kSecurityFieldNumber = 1,
  };
  // map<string, .grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme> security = 1;
  int security_size() const;
  private:
  int _internal_security_size() const;

  public:
  void clear_security() ;
  const ::google::protobuf::Map<std::string, ::grpc::gateway::protoc_gen_openapiv2::options::SecurityScheme>& security() const;
  ::google::protobuf::Map<std::string, ::grpc::gateway::protoc_gen_openapiv2::options::SecurityScheme>* mutable_security();

  private:
  const ::google::protobuf::Map<std::string, ::grpc::gateway::protoc_gen_openapiv2::options::SecurityScheme>& _internal_security() const;
  ::google::protobuf::Map<std::string, ::grpc::gateway::protoc_gen_openapiv2::options::SecurityScheme>* _internal_mutable_security();

  public:
  // @@protoc_insertion_point(class_scope:grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions)
 private:
  class _Internal;
  friend class ::google::protobuf::internal::TcParser;
  static const ::google::protobuf::internal::TcParseTable<
      0, 1, 2,
      78, 2>
      _table_;
  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(
        ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(::google::protobuf::internal::InternalVisibility visibility,
                          ::google::protobuf::Arena* arena);
    inline explicit Impl_(::google::protobuf::internal::InternalVisibility visibility,
                          ::google::protobuf::Arena* arena, const Impl_& from);
    ::google::protobuf::internal::MapField<SecurityDefinitions_SecurityEntry_DoNotUse, std::string, ::grpc::gateway::protoc_gen_openapiv2::options::SecurityScheme,
                      ::google::protobuf::internal::WireFormatLite::TYPE_STRING,
                      ::google::protobuf::internal::WireFormatLite::TYPE_MESSAGE>
        security_;
    mutable ::google::protobuf::internal::CachedSize _cached_size_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_protoc_2dgen_2dopenapiv2_2foptions_2fopenapiv2_2eproto;
};
// -------------------------------------------------------------------

class AGONES_EXPORT Response final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:grpc.gateway.protoc_gen_openapiv2.options.Response) */ {
 public:
  inline Response() : Response(nullptr) {}
  ~Response() override;
  template <typename = void>
  explicit PROTOBUF_CONSTEXPR Response(
      ::google::protobuf::internal::ConstantInitialized);

  inline Response(const Response& from) : Response(nullptr, from) {}
  inline Response(Response&& from) noexcept
      : Response(nullptr, std::move(from)) {}
  inline Response& operator=(const Response& from) {
    CopyFrom(from);
    return *this;
  }
  inline Response& operator=(Response&& from) noexcept {
    if (this == &from) return *this;
    if (GetArena() == from.GetArena()
#ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetArena() != nullptr
#endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields()
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  static const ::google::protobuf::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::google::protobuf::Descriptor* GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  static const ::google::protobuf::Reflection* GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  static const Response& default_instance() {
    return *internal_default_instance();
  }
  static inline const Response* internal_default_instance() {
    return reinterpret_cast<const Response*>(
        &_Response_default_instance_);
  }
  static constexpr int kIndexInFileMessages = 10;
  friend void swap(Response& a, Response& b) { a.Swap(&b); }
  inline void Swap(Response* other) {
    if (other == this) return;
#ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetArena() != nullptr && GetArena() == other->GetArena()) {
#else   // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetArena() == other->GetArena()) {
#endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(Response* other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  Response* New(::google::protobuf::Arena* arena = nullptr) const final {
    return ::google::protobuf::Message::DefaultConstruct<Response>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const Response& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const Response& from) { Response::MergeImpl(*this, from); }

  private:
  static void MergeImpl(
      ::google::protobuf::MessageLite& to_msg,
      const ::google::protobuf::MessageLite& from_msg);

  public:
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  ::size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::google::protobuf::internal::ParseContext* ctx) final;
  ::uint8_t* _InternalSerialize(
      ::uint8_t* target,
      ::google::protobuf::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const { return _impl_._cached_size_.Get(); }

  private:
  void SharedCtor(::google::protobuf::Arena* arena);
  void SharedDtor();
  void InternalSwap(Response* other);
 private:
  friend class ::google::protobuf::internal::AnyMetadata;
  static ::absl::string_view FullMessageName() { return "grpc.gateway.protoc_gen_openapiv2.options.Response"; }

 protected:
  explicit Response(::google::protobuf::Arena* arena);
  Response(::google::protobuf::Arena* arena, const Response& from);
  Response(::google::protobuf::Arena* arena, Response&& from) noexcept
      : Response(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::MessageLite::ClassData* GetClassData()
      const final;

 public:
  ::google::protobuf::Metadata GetMetadata() const final;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kHeadersFieldNumber = 3,
    kExamplesFieldNumber = 4,
    kExtensionsFieldNumber = 5,
    kDescriptionFieldNumber = 1,
    kSchemaFieldNumber = 2,
  };
  // map<string, .grpc.gateway.protoc_gen_openapiv2.options.Header> headers = 3;
  int headers_size() const;
  private:
  int _internal_headers_size() const;

  public:
  void clear_headers() ;
  const ::google::protobuf::Map<std::string, ::grpc::gateway::protoc_gen_openapiv2::options::Header>& headers() const;
  ::google::protobuf::Map<std::string, ::grpc::gateway::protoc_gen_openapiv2::options::Header>* mutable_headers();

  private:
  const ::google::protobuf::Map<std::string, ::grpc::gateway::protoc_gen_openapiv2::options::Header>& _internal_headers() const;
  ::google::protobuf::Map<std::string, ::grpc::gateway::protoc_gen_openapiv2::options::Header>* _internal_mutable_headers();

  public:
  // map<string, string> examples = 4;
  int examples_size() const;
  private:
  int _internal_examples_size() const;

  public:
  void clear_examples() ;
  const ::google::protobuf::Map<std::string, std::string>& examples() const;
  ::google::protobuf::Map<std::string, std::string>* mutable_examples();

  private:
  const ::google::protobuf::Map<std::string, std::string>& _internal_examples() const;
  ::google::protobuf::Map<std::string, std::string>* _internal_mutable_examples();

  public:
  // map<string, .google.protobuf.Value> extensions = 5;
  int extensions_size() const;
  private:
  int _internal_extensions_size() const;

  public:
  void clear_extensions() ;
  const ::google::protobuf::Map<std::string, ::google::protobuf::Value>& extensions() const;
  ::google::protobuf::Map<std::string, ::google::protobuf::Value>* mutable_extensions();

  private:
  const ::google::protobuf::Map<std::string, ::google::protobuf::Value>& _internal_extensions() const;
  ::google::protobuf::Map<std::string, ::google::protobuf::Value>* _internal_mutable_extensions();

  public:
  // string description = 1;
  void clear_description() ;
  const std::string& description() const;
  template <typename Arg_ = const std::string&, typename... Args_>
  void set_description(Arg_&& arg, Args_... args);
  std::string* mutable_description();
  PROTOBUF_NODISCARD std::string* release_description();
  void set_allocated_description(std::string* value);

  private:
  const std::string& _internal_description() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_description(
      const std::string& value);
  std::string* _internal_mutable_description();

  public:
  // .grpc.gateway.protoc_gen_openapiv2.options.Schema schema = 2;
  bool has_schema() const;
  void clear_schema() ;
  const ::grpc::gateway::protoc_gen_openapiv2::options::Schema& schema() const;
  PROTOBUF_NODISCARD ::grpc::gateway::protoc_gen_openapiv2::options::Schema* release_schema();
  ::grpc::gateway::protoc_gen_openapiv2::options::Schema* mutable_schema();
  void set_allocated_schema(::grpc::gateway::protoc_gen_openapiv2::options::Schema* value);
  void unsafe_arena_set_allocated_schema(::grpc::gateway::protoc_gen_openapiv2::options::Schema* value);
  ::grpc::gateway::protoc_gen_openapiv2::options::Schema* unsafe_arena_release_schema();

  private:
  const ::grpc::gateway::protoc_gen_openapiv2::options::Schema& _internal_schema() const;
  ::grpc::gateway::protoc_gen_openapiv2::options::Schema* _internal_mutable_schema();

  public:
  // @@protoc_insertion_point(class_scope:grpc.gateway.protoc_gen_openapiv2.options.Response)
 private:
  class _Internal;
  friend class ::google::protobuf::internal::TcParser;
  static const ::google::protobuf::internal::TcParseTable<
      1, 5, 6,
      95, 2>
      _table_;
  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(
        ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(::google::protobuf::internal::InternalVisibility visibility,
                          ::google::protobuf::Arena* arena);
    inline explicit Impl_(::google::protobuf::internal::InternalVisibility visibility,
                          ::google::protobuf::Arena* arena, const Impl_& from);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    mutable ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::internal::MapField<Response_HeadersEntry_DoNotUse, std::string, ::grpc::gateway::protoc_gen_openapiv2::options::Header,
                      ::google::protobuf::internal::WireFormatLite::TYPE_STRING,
                      ::google::protobuf::internal::WireFormatLite::TYPE_MESSAGE>
        headers_;
    ::google::protobuf::internal::MapField<Response_ExamplesEntry_DoNotUse, std::string, std::string,
                      ::google::protobuf::internal::WireFormatLite::TYPE_STRING,
                      ::google::protobuf::internal::WireFormatLite::TYPE_STRING>
        examples_;
    ::google::protobuf::internal::MapField<Response_ExtensionsEntry_DoNotUse, std::string, ::google::protobuf::Value,
                      ::google::protobuf::internal::WireFormatLite::TYPE_STRING,
                      ::google::protobuf::internal::WireFormatLite::TYPE_MESSAGE>
        extensions_;
    ::google::protobuf::internal::ArenaStringPtr description_;
    ::grpc::gateway::protoc_gen_openapiv2::options::Schema* schema_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_protoc_2dgen_2dopenapiv2_2foptions_2fopenapiv2_2eproto;
};
// -------------------------------------------------------------------

class Swagger_ResponsesEntry_DoNotUse final
    : public ::google::protobuf::internal::MapEntry<
          Swagger_ResponsesEntry_DoNotUse, std::string, ::grpc::gateway::protoc_gen_openapiv2::options::Response,
          ::google::protobuf::internal::WireFormatLite::TYPE_STRING,
          ::google::protobuf::internal::WireFormatLite::TYPE_MESSAGE> {
 public:
  using SuperType = ::google::protobuf::internal::MapEntry<
      Swagger_ResponsesEntry_DoNotUse, std::string, ::grpc::gateway::protoc_gen_openapiv2::options::Response,
      ::google::protobuf::internal::WireFormatLite::TYPE_STRING,
      ::google::protobuf::internal::WireFormatLite::TYPE_MESSAGE>;
  Swagger_ResponsesEntry_DoNotUse();
  template <typename = void>
  explicit PROTOBUF_CONSTEXPR Swagger_ResponsesEntry_DoNotUse(
      ::google::protobuf::internal::ConstantInitialized);
  explicit Swagger_ResponsesEntry_DoNotUse(::google::protobuf::Arena* arena);
  static const Swagger_ResponsesEntry_DoNotUse* internal_default_instance() {
    return reinterpret_cast<const Swagger_ResponsesEntry_DoNotUse*>(
        &_Swagger_ResponsesEntry_DoNotUse_default_instance_);
  }
  static bool ValidateKey(std::string* s) {
    return ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(s->data(), static_cast<int>(s->size()), ::google::protobuf::internal::WireFormatLite::PARSE, "grpc.gateway.protoc_gen_openapiv2.options.Swagger.ResponsesEntry.key");
 }
  static bool ValidateValue(void*) { return true; }
  ::google::protobuf::Metadata GetMetadata() const final;
  friend struct ::TableStruct_protoc_2dgen_2dopenapiv2_2foptions_2fopenapiv2_2eproto;
};
// -------------------------------------------------------------------

class Operation_ResponsesEntry_DoNotUse final
    : public ::google::protobuf::internal::MapEntry<
          Operation_ResponsesEntry_DoNotUse, std::string, ::grpc::gateway::protoc_gen_openapiv2::options::Response,
          ::google::protobuf::internal::WireFormatLite::TYPE_STRING,
          ::google::protobuf::internal::WireFormatLite::TYPE_MESSAGE> {
 public:
  using SuperType = ::google::protobuf::internal::MapEntry<
      Operation_ResponsesEntry_DoNotUse, std::string, ::grpc::gateway::protoc_gen_openapiv2::options::Response,
      ::google::protobuf::internal::WireFormatLite::TYPE_STRING,
      ::google::protobuf::internal::WireFormatLite::TYPE_MESSAGE>;
  Operation_ResponsesEntry_DoNotUse();
  template <typename = void>
  explicit PROTOBUF_CONSTEXPR Operation_ResponsesEntry_DoNotUse(
      ::google::protobuf::internal::ConstantInitialized);
  explicit Operation_ResponsesEntry_DoNotUse(::google::protobuf::Arena* arena);
  static const Operation_ResponsesEntry_DoNotUse* internal_default_instance() {
    return reinterpret_cast<const Operation_ResponsesEntry_DoNotUse*>(
        &_Operation_ResponsesEntry_DoNotUse_default_instance_);
  }
  static bool ValidateKey(std::string* s) {
    return ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(s->data(), static_cast<int>(s->size()), ::google::protobuf::internal::WireFormatLite::PARSE, "grpc.gateway.protoc_gen_openapiv2.options.Operation.ResponsesEntry.key");
 }
  static bool ValidateValue(void*) { return true; }
  ::google::protobuf::Metadata GetMetadata() const final;
  friend struct ::TableStruct_protoc_2dgen_2dopenapiv2_2foptions_2fopenapiv2_2eproto;
};
// -------------------------------------------------------------------

class AGONES_EXPORT Swagger final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:grpc.gateway.protoc_gen_openapiv2.options.Swagger) */ {
 public:
  inline Swagger() : Swagger(nullptr) {}
  ~Swagger() override;
  template <typename = void>
  explicit PROTOBUF_CONSTEXPR Swagger(
      ::google::protobuf::internal::ConstantInitialized);

  inline Swagger(const Swagger& from) : Swagger(nullptr, from) {}
  inline Swagger(Swagger&& from) noexcept
      : Swagger(nullptr, std::move(from)) {}
  inline Swagger& operator=(const Swagger& from) {
    CopyFrom(from);
    return *this;
  }
  inline Swagger& operator=(Swagger&& from) noexcept {
    if (this == &from) return *this;
    if (GetArena() == from.GetArena()
#ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetArena() != nullptr
#endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields()
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  static const ::google::protobuf::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::google::protobuf::Descriptor* GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  static const ::google::protobuf::Reflection* GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  static const Swagger& default_instance() {
    return *internal_default_instance();
  }
  static inline const Swagger* internal_default_instance() {
    return reinterpret_cast<const Swagger*>(
        &_Swagger_default_instance_);
  }
  static constexpr int kIndexInFileMessages = 2;
  friend void swap(Swagger& a, Swagger& b) { a.Swap(&b); }
  inline void Swap(Swagger* other) {
    if (other == this) return;
#ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetArena() != nullptr && GetArena() == other->GetArena()) {
#else   // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetArena() == other->GetArena()) {
#endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(Swagger* other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  Swagger* New(::google::protobuf::Arena* arena = nullptr) const final {
    return ::google::protobuf::Message::DefaultConstruct<Swagger>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const Swagger& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const Swagger& from) { Swagger::MergeImpl(*this, from); }

  private:
  static void MergeImpl(
      ::google::protobuf::MessageLite& to_msg,
      const ::google::protobuf::MessageLite& from_msg);

  public:
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  ::size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::google::protobuf::internal::ParseContext* ctx) final;
  ::uint8_t* _InternalSerialize(
      ::uint8_t* target,
      ::google::protobuf::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const { return _impl_._cached_size_.Get(); }

  private:
  void SharedCtor(::google::protobuf::Arena* arena);
  void SharedDtor();
  void InternalSwap(Swagger* other);
 private:
  friend class ::google::protobuf::internal::AnyMetadata;
  static ::absl::string_view FullMessageName() { return "grpc.gateway.protoc_gen_openapiv2.options.Swagger"; }

 protected:
  explicit Swagger(::google::protobuf::Arena* arena);
  Swagger(::google::protobuf::Arena* arena, const Swagger& from);
  Swagger(::google::protobuf::Arena* arena, Swagger&& from) noexcept
      : Swagger(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::MessageLite::ClassData* GetClassData()
      const final;

 public:
  ::google::protobuf::Metadata GetMetadata() const final;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kSchemesFieldNumber = 5,
    kConsumesFieldNumber = 6,
    kProducesFieldNumber = 7,
    kResponsesFieldNumber = 10,
    kSecurityFieldNumber = 12,
    kExtensionsFieldNumber = 15,
    kSwaggerFieldNumber = 1,
    kHostFieldNumber = 3,
    kBasePathFieldNumber = 4,
    kInfoFieldNumber = 2,
    kSecurityDefinitionsFieldNumber = 11,
    kExternalDocsFieldNumber = 14,
  };
  // repeated .grpc.gateway.protoc_gen_openapiv2.options.Scheme schemes = 5;
  int schemes_size() const;
  private:
  int _internal_schemes_size() const;

  public:
  void clear_schemes() ;
  public:
  ::grpc::gateway::protoc_gen_openapiv2::options::Scheme schemes(int index) const;
  void set_schemes(int index, ::grpc::gateway::protoc_gen_openapiv2::options::Scheme value);
  void add_schemes(::grpc::gateway::protoc_gen_openapiv2::options::Scheme value);
  const ::google::protobuf::RepeatedField<int>& schemes() const;
  ::google::protobuf::RepeatedField<int>* mutable_schemes();

  private:
  const ::google::protobuf::RepeatedField<int>& _internal_schemes() const;
  ::google::protobuf::RepeatedField<int>* _internal_mutable_schemes();

  public:
  // repeated string consumes = 6;
  int consumes_size() const;
  private:
  int _internal_consumes_size() const;

  public:
  void clear_consumes() ;
  const std::string& consumes(int index) const;
  std::string* mutable_consumes(int index);
  void set_consumes(int index, const std::string& value);
  void set_consumes(int index, std::string&& value);
  void set_consumes(int index, const char* value);
  void set_consumes(int index, const char* value, std::size_t size);
  void set_consumes(int index, absl::string_view value);
  std::string* add_consumes();
  void add_consumes(const std::string& value);
  void add_consumes(std::string&& value);
  void add_consumes(const char* value);
  void add_consumes(const char* value, std::size_t size);
  void add_consumes(absl::string_view value);
  const ::google::protobuf::RepeatedPtrField<std::string>& consumes() const;
  ::google::protobuf::RepeatedPtrField<std::string>* mutable_consumes();

  private:
  const ::google::protobuf::RepeatedPtrField<std::string>& _internal_consumes() const;
  ::google::protobuf::RepeatedPtrField<std::string>* _internal_mutable_consumes();

  public:
  // repeated string produces = 7;
  int produces_size() const;
  private:
  int _internal_produces_size() const;

  public:
  void clear_produces() ;
  const std::string& produces(int index) const;
  std::string* mutable_produces(int index);
  void set_produces(int index, const std::string& value);
  void set_produces(int index, std::string&& value);
  void set_produces(int index, const char* value);
  void set_produces(int index, const char* value, std::size_t size);
  void set_produces(int index, absl::string_view value);
  std::string* add_produces();
  void add_produces(const std::string& value);
  void add_produces(std::string&& value);
  void add_produces(const char* value);
  void add_produces(const char* value, std::size_t size);
  void add_produces(absl::string_view value);
  const ::google::protobuf::RepeatedPtrField<std::string>& produces() const;
  ::google::protobuf::RepeatedPtrField<std::string>* mutable_produces();

  private:
  const ::google::protobuf::RepeatedPtrField<std::string>& _internal_produces() const;
  ::google::protobuf::RepeatedPtrField<std::string>* _internal_mutable_produces();

  public:
  // map<string, .grpc.gateway.protoc_gen_openapiv2.options.Response> responses = 10;
  int responses_size() const;
  private:
  int _internal_responses_size() const;

  public:
  void clear_responses() ;
  const ::google::protobuf::Map<std::string, ::grpc::gateway::protoc_gen_openapiv2::options::Response>& responses() const;
  ::google::protobuf::Map<std::string, ::grpc::gateway::protoc_gen_openapiv2::options::Response>* mutable_responses();

  private:
  const ::google::protobuf::Map<std::string, ::grpc::gateway::protoc_gen_openapiv2::options::Response>& _internal_responses() const;
  ::google::protobuf::Map<std::string, ::grpc::gateway::protoc_gen_openapiv2::options::Response>* _internal_mutable_responses();

  public:
  // repeated .grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement security = 12;
  int security_size() const;
  private:
  int _internal_security_size() const;

  public:
  void clear_security() ;
  ::grpc::gateway::protoc_gen_openapiv2::options::SecurityRequirement* mutable_security(int index);
  ::google::protobuf::RepeatedPtrField<::grpc::gateway::protoc_gen_openapiv2::options::SecurityRequirement>* mutable_security();

  private:
  const ::google::protobuf::RepeatedPtrField<::grpc::gateway::protoc_gen_openapiv2::options::SecurityRequirement>& _internal_security() const;
  ::google::protobuf::RepeatedPtrField<::grpc::gateway::protoc_gen_openapiv2::options::SecurityRequirement>* _internal_mutable_security();
  public:
  const ::grpc::gateway::protoc_gen_openapiv2::options::SecurityRequirement& security(int index) const;
  ::grpc::gateway::protoc_gen_openapiv2::options::SecurityRequirement* add_security();
  const ::google::protobuf::RepeatedPtrField<::grpc::gateway::protoc_gen_openapiv2::options::SecurityRequirement>& security() const;
  // map<string, .google.protobuf.Value> extensions = 15;
  int extensions_size() const;
  private:
  int _internal_extensions_size() const;

  public:
  void clear_extensions() ;
  const ::google::protobuf::Map<std::string, ::google::protobuf::Value>& extensions() const;
  ::google::protobuf::Map<std::string, ::google::protobuf::Value>* mutable_extensions();

  private:
  const ::google::protobuf::Map<std::string, ::google::protobuf::Value>& _internal_extensions() const;
  ::google::protobuf::Map<std::string, ::google::protobuf::Value>* _internal_mutable_extensions();

  public:
  // string swagger = 1;
  void clear_swagger() ;
  const std::string& swagger() const;
  template <typename Arg_ = const std::string&, typename... Args_>
  void set_swagger(Arg_&& arg, Args_... args);
  std::string* mutable_swagger();
  PROTOBUF_NODISCARD std::string* release_swagger();
  void set_allocated_swagger(std::string* value);

  private:
  const std::string& _internal_swagger() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_swagger(
      const std::string& value);
  std::string* _internal_mutable_swagger();

  public:
  // string host = 3;
  void clear_host() ;
  const std::string& host() const;
  template <typename Arg_ = const std::string&, typename... Args_>
  void set_host(Arg_&& arg, Args_... args);
  std::string* mutable_host();
  PROTOBUF_NODISCARD std::string* release_host();
  void set_allocated_host(std::string* value);

  private:
  const std::string& _internal_host() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_host(
      const std::string& value);
  std::string* _internal_mutable_host();

  public:
  // string base_path = 4;
  void clear_base_path() ;
  const std::string& base_path() const;
  template <typename Arg_ = const std::string&, typename... Args_>
  void set_base_path(Arg_&& arg, Args_... args);
  std::string* mutable_base_path();
  PROTOBUF_NODISCARD std::string* release_base_path();
  void set_allocated_base_path(std::string* value);

  private:
  const std::string& _internal_base_path() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_base_path(
      const std::string& value);
  std::string* _internal_mutable_base_path();

  public:
  // .grpc.gateway.protoc_gen_openapiv2.options.Info info = 2;
  bool has_info() const;
  void clear_info() ;
  const ::grpc::gateway::protoc_gen_openapiv2::options::Info& info() const;
  PROTOBUF_NODISCARD ::grpc::gateway::protoc_gen_openapiv2::options::Info* release_info();
  ::grpc::gateway::protoc_gen_openapiv2::options::Info* mutable_info();
  void set_allocated_info(::grpc::gateway::protoc_gen_openapiv2::options::Info* value);
  void unsafe_arena_set_allocated_info(::grpc::gateway::protoc_gen_openapiv2::options::Info* value);
  ::grpc::gateway::protoc_gen_openapiv2::options::Info* unsafe_arena_release_info();

  private:
  const ::grpc::gateway::protoc_gen_openapiv2::options::Info& _internal_info() const;
  ::grpc::gateway::protoc_gen_openapiv2::options::Info* _internal_mutable_info();

  public:
  // .grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions security_definitions = 11;
  bool has_security_definitions() const;
  void clear_security_definitions() ;
  const ::grpc::gateway::protoc_gen_openapiv2::options::SecurityDefinitions& security_definitions() const;
  PROTOBUF_NODISCARD ::grpc::gateway::protoc_gen_openapiv2::options::SecurityDefinitions* release_security_definitions();
  ::grpc::gateway::protoc_gen_openapiv2::options::SecurityDefinitions* mutable_security_definitions();
  void set_allocated_security_definitions(::grpc::gateway::protoc_gen_openapiv2::options::SecurityDefinitions* value);
  void unsafe_arena_set_allocated_security_definitions(::grpc::gateway::protoc_gen_openapiv2::options::SecurityDefinitions* value);
  ::grpc::gateway::protoc_gen_openapiv2::options::SecurityDefinitions* unsafe_arena_release_security_definitions();

  private:
  const ::grpc::gateway::protoc_gen_openapiv2::options::SecurityDefinitions& _internal_security_definitions() const;
  ::grpc::gateway::protoc_gen_openapiv2::options::SecurityDefinitions* _internal_mutable_security_definitions();

  public:
  // .grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation external_docs = 14;
  bool has_external_docs() const;
  void clear_external_docs() ;
  const ::grpc::gateway::protoc_gen_openapiv2::options::ExternalDocumentation& external_docs() const;
  PROTOBUF_NODISCARD ::grpc::gateway::protoc_gen_openapiv2::options::ExternalDocumentation* release_external_docs();
  ::grpc::gateway::protoc_gen_openapiv2::options::ExternalDocumentation* mutable_external_docs();
  void set_allocated_external_docs(::grpc::gateway::protoc_gen_openapiv2::options::ExternalDocumentation* value);
  void unsafe_arena_set_allocated_external_docs(::grpc::gateway::protoc_gen_openapiv2::options::ExternalDocumentation* value);
  ::grpc::gateway::protoc_gen_openapiv2::options::ExternalDocumentation* unsafe_arena_release_external_docs();

  private:
  const ::grpc::gateway::protoc_gen_openapiv2::options::ExternalDocumentation& _internal_external_docs() const;
  ::grpc::gateway::protoc_gen_openapiv2::options::ExternalDocumentation* _internal_mutable_external_docs();

  public:
  // @@protoc_insertion_point(class_scope:grpc.gateway.protoc_gen_openapiv2.options.Swagger)
 private:
  class _Internal;
  friend class ::google::protobuf::internal::TcParser;
  static const ::google::protobuf::internal::TcParseTable<
      4, 12, 8,
      121, 2>
      _table_;
  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(
        ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(::google::protobuf::internal::InternalVisibility visibility,
                          ::google::protobuf::Arena* arena);
    inline explicit Impl_(::google::protobuf::internal::InternalVisibility visibility,
                          ::google::protobuf::Arena* arena, const Impl_& from);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    mutable ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::RepeatedField<int> schemes_;
    mutable ::google::protobuf::internal::CachedSize _schemes_cached_byte_size_;
    ::google::protobuf::RepeatedPtrField<std::string> consumes_;
    ::google::protobuf::RepeatedPtrField<std::string> produces_;
    ::google::protobuf::internal::MapField<Swagger_ResponsesEntry_DoNotUse, std::string, ::grpc::gateway::protoc_gen_openapiv2::options::Response,
                      ::google::protobuf::internal::WireFormatLite::TYPE_STRING,
                      ::google::protobuf::internal::WireFormatLite::TYPE_MESSAGE>
        responses_;
    ::google::protobuf::RepeatedPtrField< ::grpc::gateway::protoc_gen_openapiv2::options::SecurityRequirement > security_;
    ::google::protobuf::internal::MapField<Swagger_ExtensionsEntry_DoNotUse, std::string, ::google::protobuf::Value,
                      ::google::protobuf::internal::WireFormatLite::TYPE_STRING,
                      ::google::protobuf::internal::WireFormatLite::TYPE_MESSAGE>
        extensions_;
    ::google::protobuf::internal::ArenaStringPtr swagger_;
    ::google::protobuf::internal::ArenaStringPtr host_;
    ::google::protobuf::internal::ArenaStringPtr base_path_;
    ::grpc::gateway::protoc_gen_openapiv2::options::Info* info_;
    ::grpc::gateway::protoc_gen_openapiv2::options::SecurityDefinitions* security_definitions_;
    ::grpc::gateway::protoc_gen_openapiv2::options::ExternalDocumentation* external_docs_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_protoc_2dgen_2dopenapiv2_2foptions_2fopenapiv2_2eproto;
};
// -------------------------------------------------------------------

class AGONES_EXPORT Operation final : public ::google::protobuf::Message
/* @@protoc_insertion_point(class_definition:grpc.gateway.protoc_gen_openapiv2.options.Operation) */ {
 public:
  inline Operation() : Operation(nullptr) {}
  ~Operation() override;
  template <typename = void>
  explicit PROTOBUF_CONSTEXPR Operation(
      ::google::protobuf::internal::ConstantInitialized);

  inline Operation(const Operation& from) : Operation(nullptr, from) {}
  inline Operation(Operation&& from) noexcept
      : Operation(nullptr, std::move(from)) {}
  inline Operation& operator=(const Operation& from) {
    CopyFrom(from);
    return *this;
  }
  inline Operation& operator=(Operation&& from) noexcept {
    if (this == &from) return *this;
    if (GetArena() == from.GetArena()
#ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetArena() != nullptr
#endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance);
  }
  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields()
      ABSL_ATTRIBUTE_LIFETIME_BOUND {
    return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>();
  }

  static const ::google::protobuf::Descriptor* descriptor() {
    return GetDescriptor();
  }
  static const ::google::protobuf::Descriptor* GetDescriptor() {
    return default_instance().GetMetadata().descriptor;
  }
  static const ::google::protobuf::Reflection* GetReflection() {
    return default_instance().GetMetadata().reflection;
  }
  static const Operation& default_instance() {
    return *internal_default_instance();
  }
  static inline const Operation* internal_default_instance() {
    return reinterpret_cast<const Operation*>(
        &_Operation_default_instance_);
  }
  static constexpr int kIndexInFileMessages = 5;
  friend void swap(Operation& a, Operation& b) { a.Swap(&b); }
  inline void Swap(Operation* other) {
    if (other == this) return;
#ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetArena() != nullptr && GetArena() == other->GetArena()) {
#else   // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetArena() == other->GetArena()) {
#endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::google::protobuf::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(Operation* other) {
    if (other == this) return;
    ABSL_DCHECK(GetArena() == other->GetArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  Operation* New(::google::protobuf::Arena* arena = nullptr) const final {
    return ::google::protobuf::Message::DefaultConstruct<Operation>(arena);
  }
  using ::google::protobuf::Message::CopyFrom;
  void CopyFrom(const Operation& from);
  using ::google::protobuf::Message::MergeFrom;
  void MergeFrom(const Operation& from) { Operation::MergeImpl(*this, from); }

  private:
  static void MergeImpl(
      ::google::protobuf::MessageLite& to_msg,
      const ::google::protobuf::MessageLite& from_msg);

  public:
  ABSL_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  ::size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::google::protobuf::internal::ParseContext* ctx) final;
  ::uint8_t* _InternalSerialize(
      ::uint8_t* target,
      ::google::protobuf::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const { return _impl_._cached_size_.Get(); }

  private:
  void SharedCtor(::google::protobuf::Arena* arena);
  void SharedDtor();
  void InternalSwap(Operation* other);
 private:
  friend class ::google::protobuf::internal::AnyMetadata;
  static ::absl::string_view FullMessageName() { return "grpc.gateway.protoc_gen_openapiv2.options.Operation"; }

 protected:
  explicit Operation(::google::protobuf::Arena* arena);
  Operation(::google::protobuf::Arena* arena, const Operation& from);
  Operation(::google::protobuf::Arena* arena, Operation&& from) noexcept
      : Operation(arena) {
    *this = ::std::move(from);
  }
  const ::google::protobuf::MessageLite::ClassData* GetClassData()
      const final;

 public:
  ::google::protobuf::Metadata GetMetadata() const final;
  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------
  enum : int {
    kTagsFieldNumber = 1,
    kConsumesFieldNumber = 6,
    kProducesFieldNumber = 7,
    kResponsesFieldNumber = 9,
    kSchemesFieldNumber = 10,
    kSecurityFieldNumber = 12,
    kExtensionsFieldNumber = 13,
    kSummaryFieldNumber = 2,
    kDescriptionFieldNumber = 3,
    kOperationIdFieldNumber = 5,
    kExternalDocsFieldNumber = 4,
    kDeprecatedFieldNumber = 11,
  };
  // repeated string tags = 1;
  int tags_size() const;
  private:
  int _internal_tags_size() const;

  public:
  void clear_tags() ;
  const std::string& tags(int index) const;
  std::string* mutable_tags(int index);
  void set_tags(int index, const std::string& value);
  void set_tags(int index, std::string&& value);
  void set_tags(int index, const char* value);
  void set_tags(int index, const char* value, std::size_t size);
  void set_tags(int index, absl::string_view value);
  std::string* add_tags();
  void add_tags(const std::string& value);
  void add_tags(std::string&& value);
  void add_tags(const char* value);
  void add_tags(const char* value, std::size_t size);
  void add_tags(absl::string_view value);
  const ::google::protobuf::RepeatedPtrField<std::string>& tags() const;
  ::google::protobuf::RepeatedPtrField<std::string>* mutable_tags();

  private:
  const ::google::protobuf::RepeatedPtrField<std::string>& _internal_tags() const;
  ::google::protobuf::RepeatedPtrField<std::string>* _internal_mutable_tags();

  public:
  // repeated string consumes = 6;
  int consumes_size() const;
  private:
  int _internal_consumes_size() const;

  public:
  void clear_consumes() ;
  const std::string& consumes(int index) const;
  std::string* mutable_consumes(int index);
  void set_consumes(int index, const std::string& value);
  void set_consumes(int index, std::string&& value);
  void set_consumes(int index, const char* value);
  void set_consumes(int index, const char* value, std::size_t size);
  void set_consumes(int index, absl::string_view value);
  std::string* add_consumes();
  void add_consumes(const std::string& value);
  void add_consumes(std::string&& value);
  void add_consumes(const char* value);
  void add_consumes(const char* value, std::size_t size);
  void add_consumes(absl::string_view value);
  const ::google::protobuf::RepeatedPtrField<std::string>& consumes() const;
  ::google::protobuf::RepeatedPtrField<std::string>* mutable_consumes();

  private:
  const ::google::protobuf::RepeatedPtrField<std::string>& _internal_consumes() const;
  ::google::protobuf::RepeatedPtrField<std::string>* _internal_mutable_consumes();

  public:
  // repeated string produces = 7;
  int produces_size() const;
  private:
  int _internal_produces_size() const;

  public:
  void clear_produces() ;
  const std::string& produces(int index) const;
  std::string* mutable_produces(int index);
  void set_produces(int index, const std::string& value);
  void set_produces(int index, std::string&& value);
  void set_produces(int index, const char* value);
  void set_produces(int index, const char* value, std::size_t size);
  void set_produces(int index, absl::string_view value);
  std::string* add_produces();
  void add_produces(const std::string& value);
  void add_produces(std::string&& value);
  void add_produces(const char* value);
  void add_produces(const char* value, std::size_t size);
  void add_produces(absl::string_view value);
  const ::google::protobuf::RepeatedPtrField<std::string>& produces() const;
  ::google::protobuf::RepeatedPtrField<std::string>* mutable_produces();

  private:
  const ::google::protobuf::RepeatedPtrField<std::string>& _internal_produces() const;
  ::google::protobuf::RepeatedPtrField<std::string>* _internal_mutable_produces();

  public:
  // map<string, .grpc.gateway.protoc_gen_openapiv2.options.Response> responses = 9;
  int responses_size() const;
  private:
  int _internal_responses_size() const;

  public:
  void clear_responses() ;
  const ::google::protobuf::Map<std::string, ::grpc::gateway::protoc_gen_openapiv2::options::Response>& responses() const;
  ::google::protobuf::Map<std::string, ::grpc::gateway::protoc_gen_openapiv2::options::Response>* mutable_responses();

  private:
  const ::google::protobuf::Map<std::string, ::grpc::gateway::protoc_gen_openapiv2::options::Response>& _internal_responses() const;
  ::google::protobuf::Map<std::string, ::grpc::gateway::protoc_gen_openapiv2::options::Response>* _internal_mutable_responses();

  public:
  // repeated .grpc.gateway.protoc_gen_openapiv2.options.Scheme schemes = 10;
  int schemes_size() const;
  private:
  int _internal_schemes_size() const;

  public:
  void clear_schemes() ;
  public:
  ::grpc::gateway::protoc_gen_openapiv2::options::Scheme schemes(int index) const;
  void set_schemes(int index, ::grpc::gateway::protoc_gen_openapiv2::options::Scheme value);
  void add_schemes(::grpc::gateway::protoc_gen_openapiv2::options::Scheme value);
  const ::google::protobuf::RepeatedField<int>& schemes() const;
  ::google::protobuf::RepeatedField<int>* mutable_schemes();

  private:
  const ::google::protobuf::RepeatedField<int>& _internal_schemes() const;
  ::google::protobuf::RepeatedField<int>* _internal_mutable_schemes();

  public:
  // repeated .grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement security = 12;
  int security_size() const;
  private:
  int _internal_security_size() const;

  public:
  void clear_security() ;
  ::grpc::gateway::protoc_gen_openapiv2::options::SecurityRequirement* mutable_security(int index);
  ::google::protobuf::RepeatedPtrField<::grpc::gateway::protoc_gen_openapiv2::options::SecurityRequirement>* mutable_security();

  private:
  const ::google::protobuf::RepeatedPtrField<::grpc::gateway::protoc_gen_openapiv2::options::SecurityRequirement>& _internal_security() const;
  ::google::protobuf::RepeatedPtrField<::grpc::gateway::protoc_gen_openapiv2::options::SecurityRequirement>* _internal_mutable_security();
  public:
  const ::grpc::gateway::protoc_gen_openapiv2::options::SecurityRequirement& security(int index) const;
  ::grpc::gateway::protoc_gen_openapiv2::options::SecurityRequirement* add_security();
  const ::google::protobuf::RepeatedPtrField<::grpc::gateway::protoc_gen_openapiv2::options::SecurityRequirement>& security() const;
  // map<string, .google.protobuf.Value> extensions = 13;
  int extensions_size() const;
  private:
  int _internal_extensions_size() const;

  public:
  void clear_extensions() ;
  const ::google::protobuf::Map<std::string, ::google::protobuf::Value>& extensions() const;
  ::google::protobuf::Map<std::string, ::google::protobuf::Value>* mutable_extensions();

  private:
  const ::google::protobuf::Map<std::string, ::google::protobuf::Value>& _internal_extensions() const;
  ::google::protobuf::Map<std::string, ::google::protobuf::Value>* _internal_mutable_extensions();

  public:
  // string summary = 2;
  void clear_summary() ;
  const std::string& summary() const;
  template <typename Arg_ = const std::string&, typename... Args_>
  void set_summary(Arg_&& arg, Args_... args);
  std::string* mutable_summary();
  PROTOBUF_NODISCARD std::string* release_summary();
  void set_allocated_summary(std::string* value);

  private:
  const std::string& _internal_summary() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_summary(
      const std::string& value);
  std::string* _internal_mutable_summary();

  public:
  // string description = 3;
  void clear_description() ;
  const std::string& description() const;
  template <typename Arg_ = const std::string&, typename... Args_>
  void set_description(Arg_&& arg, Args_... args);
  std::string* mutable_description();
  PROTOBUF_NODISCARD std::string* release_description();
  void set_allocated_description(std::string* value);

  private:
  const std::string& _internal_description() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_description(
      const std::string& value);
  std::string* _internal_mutable_description();

  public:
  // string operation_id = 5;
  void clear_operation_id() ;
  const std::string& operation_id() const;
  template <typename Arg_ = const std::string&, typename... Args_>
  void set_operation_id(Arg_&& arg, Args_... args);
  std::string* mutable_operation_id();
  PROTOBUF_NODISCARD std::string* release_operation_id();
  void set_allocated_operation_id(std::string* value);

  private:
  const std::string& _internal_operation_id() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_operation_id(
      const std::string& value);
  std::string* _internal_mutable_operation_id();

  public:
  // .grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation external_docs = 4;
  bool has_external_docs() const;
  void clear_external_docs() ;
  const ::grpc::gateway::protoc_gen_openapiv2::options::ExternalDocumentation& external_docs() const;
  PROTOBUF_NODISCARD ::grpc::gateway::protoc_gen_openapiv2::options::ExternalDocumentation* release_external_docs();
  ::grpc::gateway::protoc_gen_openapiv2::options::ExternalDocumentation* mutable_external_docs();
  void set_allocated_external_docs(::grpc::gateway::protoc_gen_openapiv2::options::ExternalDocumentation* value);
  void unsafe_arena_set_allocated_external_docs(::grpc::gateway::protoc_gen_openapiv2::options::ExternalDocumentation* value);
  ::grpc::gateway::protoc_gen_openapiv2::options::ExternalDocumentation* unsafe_arena_release_external_docs();

  private:
  const ::grpc::gateway::protoc_gen_openapiv2::options::ExternalDocumentation& _internal_external_docs() const;
  ::grpc::gateway::protoc_gen_openapiv2::options::ExternalDocumentation* _internal_mutable_external_docs();

  public:
  // bool deprecated = 11;
  void clear_deprecated() ;
  bool deprecated() const;
  void set_deprecated(bool value);

  private:
  bool _internal_deprecated() const;
  void _internal_set_deprecated(bool value);

  public:
  // @@protoc_insertion_point(class_scope:grpc.gateway.protoc_gen_openapiv2.options.Operation)
 private:
  class _Internal;
  friend class ::google::protobuf::internal::TcParser;
  static const ::google::protobuf::internal::TcParseTable<
      4, 12, 6,
      137, 2>
      _table_;
  friend class ::google::protobuf::MessageLite;
  friend class ::google::protobuf::Arena;
  template <typename T>
  friend class ::google::protobuf::Arena::InternalHelper;
  using InternalArenaConstructable_ = void;
  using DestructorSkippable_ = void;
  struct Impl_ {
    inline explicit constexpr Impl_(
        ::google::protobuf::internal::ConstantInitialized) noexcept;
    inline explicit Impl_(::google::protobuf::internal::InternalVisibility visibility,
                          ::google::protobuf::Arena* arena);
    inline explicit Impl_(::google::protobuf::internal::InternalVisibility visibility,
                          ::google::protobuf::Arena* arena, const Impl_& from);
    ::google::protobuf::internal::HasBits<1> _has_bits_;
    mutable ::google::protobuf::internal::CachedSize _cached_size_;
    ::google::protobuf::RepeatedPtrField<std::string> tags_;
    ::google::protobuf::RepeatedPtrField<std::string> consumes_;
    ::google::protobuf::RepeatedPtrField<std::string> produces_;
    ::google::protobuf::internal::MapField<Operation_ResponsesEntry_DoNotUse, std::string, ::grpc::gateway::protoc_gen_openapiv2::options::Response,
                      ::google::protobuf::internal::WireFormatLite::TYPE_STRING,
                      ::google::protobuf::internal::WireFormatLite::TYPE_MESSAGE>
        responses_;
    ::google::protobuf::RepeatedField<int> schemes_;
    mutable ::google::protobuf::internal::CachedSize _schemes_cached_byte_size_;
    ::google::protobuf::RepeatedPtrField< ::grpc::gateway::protoc_gen_openapiv2::options::SecurityRequirement > security_;
    ::google::protobuf::internal::MapField<Operation_ExtensionsEntry_DoNotUse, std::string, ::google::protobuf::Value,
                      ::google::protobuf::internal::WireFormatLite::TYPE_STRING,
                      ::google::protobuf::internal::WireFormatLite::TYPE_MESSAGE>
        extensions_;
    ::google::protobuf::internal::ArenaStringPtr summary_;
    ::google::protobuf::internal::ArenaStringPtr description_;
    ::google::protobuf::internal::ArenaStringPtr operation_id_;
    ::grpc::gateway::protoc_gen_openapiv2::options::ExternalDocumentation* external_docs_;
    bool deprecated_;
    PROTOBUF_TSAN_DECLARE_MEMBER
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_protoc_2dgen_2dopenapiv2_2foptions_2fopenapiv2_2eproto;
};

// ===================================================================




// ===================================================================


#ifdef __GNUC__
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wstrict-aliasing"
#endif  // __GNUC__
// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// Swagger

// string swagger = 1;
inline void Swagger::clear_swagger() {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _impl_.swagger_.ClearToEmpty();
}
inline const std::string& Swagger::swagger() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:grpc.gateway.protoc_gen_openapiv2.options.Swagger.swagger)
  return _internal_swagger();
}
template <typename Arg_, typename... Args_>
inline PROTOBUF_ALWAYS_INLINE void Swagger::set_swagger(Arg_&& arg,
                                                     Args_... args) {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _impl_.swagger_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:grpc.gateway.protoc_gen_openapiv2.options.Swagger.swagger)
}
inline std::string* Swagger::mutable_swagger() ABSL_ATTRIBUTE_LIFETIME_BOUND {
  std::string* _s = _internal_mutable_swagger();
  // @@protoc_insertion_point(field_mutable:grpc.gateway.protoc_gen_openapiv2.options.Swagger.swagger)
  return _s;
}
inline const std::string& Swagger::_internal_swagger() const {
  PROTOBUF_TSAN_READ(&_impl_._tsan_detect_race);
  return _impl_.swagger_.Get();
}
inline void Swagger::_internal_set_swagger(const std::string& value) {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _impl_.swagger_.Set(value, GetArena());
}
inline std::string* Swagger::_internal_mutable_swagger() {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  return _impl_.swagger_.Mutable( GetArena());
}
inline std::string* Swagger::release_swagger() {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  // @@protoc_insertion_point(field_release:grpc.gateway.protoc_gen_openapiv2.options.Swagger.swagger)
  return _impl_.swagger_.Release();
}
inline void Swagger::set_allocated_swagger(std::string* value) {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _impl_.swagger_.SetAllocated(value, GetArena());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
        if (_impl_.swagger_.IsDefault()) {
          _impl_.swagger_.Set("", GetArena());
        }
  #endif  // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:grpc.gateway.protoc_gen_openapiv2.options.Swagger.swagger)
}

// .grpc.gateway.protoc_gen_openapiv2.options.Info info = 2;
inline bool Swagger::has_info() const {
  bool value = (_impl_._has_bits_[0] & 0x00000001u) != 0;
  PROTOBUF_ASSUME(!value || _impl_.info_ != nullptr);
  return value;
}
inline void Swagger::clear_info() {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  if (_impl_.info_ != nullptr) _impl_.info_->Clear();
  _impl_._has_bits_[0] &= ~0x00000001u;
}
inline const ::grpc::gateway::protoc_gen_openapiv2::options::Info& Swagger::_internal_info() const {
  PROTOBUF_TSAN_READ(&_impl_._tsan_detect_race);
  const ::grpc::gateway::protoc_gen_openapiv2::options::Info* p = _impl_.info_;
  return p != nullptr ? *p : reinterpret_cast<const ::grpc::gateway::protoc_gen_openapiv2::options::Info&>(::grpc::gateway::protoc_gen_openapiv2::options::_Info_default_instance_);
}
inline const ::grpc::gateway::protoc_gen_openapiv2::options::Info& Swagger::info() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:grpc.gateway.protoc_gen_openapiv2.options.Swagger.info)
  return _internal_info();
}
inline void Swagger::unsafe_arena_set_allocated_info(::grpc::gateway::protoc_gen_openapiv2::options::Info* value) {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.info_);
  }
  _impl_.info_ = reinterpret_cast<::grpc::gateway::protoc_gen_openapiv2::options::Info*>(value);
  if (value != nullptr) {
    _impl_._has_bits_[0] |= 0x00000001u;
  } else {
    _impl_._has_bits_[0] &= ~0x00000001u;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:grpc.gateway.protoc_gen_openapiv2.options.Swagger.info)
}
inline ::grpc::gateway::protoc_gen_openapiv2::options::Info* Swagger::release_info() {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);

  _impl_._has_bits_[0] &= ~0x00000001u;
  ::grpc::gateway::protoc_gen_openapiv2::options::Info* released = _impl_.info_;
  _impl_.info_ = nullptr;
#ifdef PROTOBUF_FORCE_COPY_IN_RELEASE
  auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
  released = ::google::protobuf::internal::DuplicateIfNonNull(released);
  if (GetArena() == nullptr) {
    delete old;
  }
#else   // PROTOBUF_FORCE_COPY_IN_RELEASE
  if (GetArena() != nullptr) {
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
  }
#endif  // !PROTOBUF_FORCE_COPY_IN_RELEASE
  return released;
}
inline ::grpc::gateway::protoc_gen_openapiv2::options::Info* Swagger::unsafe_arena_release_info() {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  // @@protoc_insertion_point(field_release:grpc.gateway.protoc_gen_openapiv2.options.Swagger.info)

  _impl_._has_bits_[0] &= ~0x00000001u;
  ::grpc::gateway::protoc_gen_openapiv2::options::Info* temp = _impl_.info_;
  _impl_.info_ = nullptr;
  return temp;
}
inline ::grpc::gateway::protoc_gen_openapiv2::options::Info* Swagger::_internal_mutable_info() {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  if (_impl_.info_ == nullptr) {
    auto* p = ::google::protobuf::Message::DefaultConstruct<::grpc::gateway::protoc_gen_openapiv2::options::Info>(GetArena());
    _impl_.info_ = reinterpret_cast<::grpc::gateway::protoc_gen_openapiv2::options::Info*>(p);
  }
  return _impl_.info_;
}
inline ::grpc::gateway::protoc_gen_openapiv2::options::Info* Swagger::mutable_info() ABSL_ATTRIBUTE_LIFETIME_BOUND {
  _impl_._has_bits_[0] |= 0x00000001u;
  ::grpc::gateway::protoc_gen_openapiv2::options::Info* _msg = _internal_mutable_info();
  // @@protoc_insertion_point(field_mutable:grpc.gateway.protoc_gen_openapiv2.options.Swagger.info)
  return _msg;
}
inline void Swagger::set_allocated_info(::grpc::gateway::protoc_gen_openapiv2::options::Info* value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  if (message_arena == nullptr) {
    delete (_impl_.info_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = (value)->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    _impl_._has_bits_[0] |= 0x00000001u;
  } else {
    _impl_._has_bits_[0] &= ~0x00000001u;
  }

  _impl_.info_ = reinterpret_cast<::grpc::gateway::protoc_gen_openapiv2::options::Info*>(value);
  // @@protoc_insertion_point(field_set_allocated:grpc.gateway.protoc_gen_openapiv2.options.Swagger.info)
}

// string host = 3;
inline void Swagger::clear_host() {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _impl_.host_.ClearToEmpty();
}
inline const std::string& Swagger::host() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:grpc.gateway.protoc_gen_openapiv2.options.Swagger.host)
  return _internal_host();
}
template <typename Arg_, typename... Args_>
inline PROTOBUF_ALWAYS_INLINE void Swagger::set_host(Arg_&& arg,
                                                     Args_... args) {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _impl_.host_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:grpc.gateway.protoc_gen_openapiv2.options.Swagger.host)
}
inline std::string* Swagger::mutable_host() ABSL_ATTRIBUTE_LIFETIME_BOUND {
  std::string* _s = _internal_mutable_host();
  // @@protoc_insertion_point(field_mutable:grpc.gateway.protoc_gen_openapiv2.options.Swagger.host)
  return _s;
}
inline const std::string& Swagger::_internal_host() const {
  PROTOBUF_TSAN_READ(&_impl_._tsan_detect_race);
  return _impl_.host_.Get();
}
inline void Swagger::_internal_set_host(const std::string& value) {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _impl_.host_.Set(value, GetArena());
}
inline std::string* Swagger::_internal_mutable_host() {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  return _impl_.host_.Mutable( GetArena());
}
inline std::string* Swagger::release_host() {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  // @@protoc_insertion_point(field_release:grpc.gateway.protoc_gen_openapiv2.options.Swagger.host)
  return _impl_.host_.Release();
}
inline void Swagger::set_allocated_host(std::string* value) {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _impl_.host_.SetAllocated(value, GetArena());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
        if (_impl_.host_.IsDefault()) {
          _impl_.host_.Set("", GetArena());
        }
  #endif  // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:grpc.gateway.protoc_gen_openapiv2.options.Swagger.host)
}

// string base_path = 4;
inline void Swagger::clear_base_path() {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _impl_.base_path_.ClearToEmpty();
}
inline const std::string& Swagger::base_path() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:grpc.gateway.protoc_gen_openapiv2.options.Swagger.base_path)
  return _internal_base_path();
}
template <typename Arg_, typename... Args_>
inline PROTOBUF_ALWAYS_INLINE void Swagger::set_base_path(Arg_&& arg,
                                                     Args_... args) {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _impl_.base_path_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:grpc.gateway.protoc_gen_openapiv2.options.Swagger.base_path)
}
inline std::string* Swagger::mutable_base_path() ABSL_ATTRIBUTE_LIFETIME_BOUND {
  std::string* _s = _internal_mutable_base_path();
  // @@protoc_insertion_point(field_mutable:grpc.gateway.protoc_gen_openapiv2.options.Swagger.base_path)
  return _s;
}
inline const std::string& Swagger::_internal_base_path() const {
  PROTOBUF_TSAN_READ(&_impl_._tsan_detect_race);
  return _impl_.base_path_.Get();
}
inline void Swagger::_internal_set_base_path(const std::string& value) {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _impl_.base_path_.Set(value, GetArena());
}
inline std::string* Swagger::_internal_mutable_base_path() {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  return _impl_.base_path_.Mutable( GetArena());
}
inline std::string* Swagger::release_base_path() {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  // @@protoc_insertion_point(field_release:grpc.gateway.protoc_gen_openapiv2.options.Swagger.base_path)
  return _impl_.base_path_.Release();
}
inline void Swagger::set_allocated_base_path(std::string* value) {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _impl_.base_path_.SetAllocated(value, GetArena());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
        if (_impl_.base_path_.IsDefault()) {
          _impl_.base_path_.Set("", GetArena());
        }
  #endif  // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:grpc.gateway.protoc_gen_openapiv2.options.Swagger.base_path)
}

// repeated .grpc.gateway.protoc_gen_openapiv2.options.Scheme schemes = 5;
inline int Swagger::_internal_schemes_size() const {
  return _internal_schemes().size();
}
inline int Swagger::schemes_size() const {
  return _internal_schemes_size();
}
inline void Swagger::clear_schemes() {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _impl_.schemes_.Clear();
}
inline ::grpc::gateway::protoc_gen_openapiv2::options::Scheme Swagger::schemes(int index) const {
  // @@protoc_insertion_point(field_get:grpc.gateway.protoc_gen_openapiv2.options.Swagger.schemes)
  return static_cast<::grpc::gateway::protoc_gen_openapiv2::options::Scheme>(_internal_schemes().Get(index));
}
inline void Swagger::set_schemes(int index, ::grpc::gateway::protoc_gen_openapiv2::options::Scheme value) {
  _internal_mutable_schemes()->Set(index, value);
  // @@protoc_insertion_point(field_set:grpc.gateway.protoc_gen_openapiv2.options.Swagger.schemes)
}
inline void Swagger::add_schemes(::grpc::gateway::protoc_gen_openapiv2::options::Scheme value) {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _internal_mutable_schemes()->Add(value);
  // @@protoc_insertion_point(field_add:grpc.gateway.protoc_gen_openapiv2.options.Swagger.schemes)
}
inline const ::google::protobuf::RepeatedField<int>& Swagger::schemes() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_list:grpc.gateway.protoc_gen_openapiv2.options.Swagger.schemes)
  return _internal_schemes();
}
inline ::google::protobuf::RepeatedField<int>* Swagger::mutable_schemes()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_mutable_list:grpc.gateway.protoc_gen_openapiv2.options.Swagger.schemes)
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  return _internal_mutable_schemes();
}
inline const ::google::protobuf::RepeatedField<int>& Swagger::_internal_schemes()
    const {
  PROTOBUF_TSAN_READ(&_impl_._tsan_detect_race);
  return _impl_.schemes_;
}
inline ::google::protobuf::RepeatedField<int>* Swagger::_internal_mutable_schemes() {
  PROTOBUF_TSAN_READ(&_impl_._tsan_detect_race);
  return &_impl_.schemes_;
}

// repeated string consumes = 6;
inline int Swagger::_internal_consumes_size() const {
  return _internal_consumes().size();
}
inline int Swagger::consumes_size() const {
  return _internal_consumes_size();
}
inline void Swagger::clear_consumes() {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _impl_.consumes_.Clear();
}
inline std::string* Swagger::add_consumes()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  std::string* _s = _internal_mutable_consumes()->Add();
  // @@protoc_insertion_point(field_add_mutable:grpc.gateway.protoc_gen_openapiv2.options.Swagger.consumes)
  return _s;
}
inline const std::string& Swagger::consumes(int index) const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:grpc.gateway.protoc_gen_openapiv2.options.Swagger.consumes)
  return _internal_consumes().Get(index);
}
inline std::string* Swagger::mutable_consumes(int index)
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_mutable:grpc.gateway.protoc_gen_openapiv2.options.Swagger.consumes)
  return _internal_mutable_consumes()->Mutable(index);
}
inline void Swagger::set_consumes(int index, const std::string& value) {
  _internal_mutable_consumes()->Mutable(index)->assign(value);
  // @@protoc_insertion_point(field_set:grpc.gateway.protoc_gen_openapiv2.options.Swagger.consumes)
}
inline void Swagger::set_consumes(int index, std::string&& value) {
  _internal_mutable_consumes()->Mutable(index)->assign(std::move(value));
  // @@protoc_insertion_point(field_set:grpc.gateway.protoc_gen_openapiv2.options.Swagger.consumes)
}
inline void Swagger::set_consumes(int index, const char* value) {
  ABSL_DCHECK(value != nullptr);
  _internal_mutable_consumes()->Mutable(index)->assign(value);
  // @@protoc_insertion_point(field_set_char:grpc.gateway.protoc_gen_openapiv2.options.Swagger.consumes)
}
inline void Swagger::set_consumes(int index, const char* value,
                              std::size_t size) {
  _internal_mutable_consumes()->Mutable(index)->assign(
      reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_set_pointer:grpc.gateway.protoc_gen_openapiv2.options.Swagger.consumes)
}
inline void Swagger::set_consumes(int index, absl::string_view value) {
  _internal_mutable_consumes()->Mutable(index)->assign(
      value.data(), value.size());
  // @@protoc_insertion_point(field_set_string_piece:grpc.gateway.protoc_gen_openapiv2.options.Swagger.consumes)
}
inline void Swagger::add_consumes(const std::string& value) {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _internal_mutable_consumes()->Add()->assign(value);
  // @@protoc_insertion_point(field_add:grpc.gateway.protoc_gen_openapiv2.options.Swagger.consumes)
}
inline void Swagger::add_consumes(std::string&& value) {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _internal_mutable_consumes()->Add(std::move(value));
  // @@protoc_insertion_point(field_add:grpc.gateway.protoc_gen_openapiv2.options.Swagger.consumes)
}
inline void Swagger::add_consumes(const char* value) {
  ABSL_DCHECK(value != nullptr);
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _internal_mutable_consumes()->Add()->assign(value);
  // @@protoc_insertion_point(field_add_char:grpc.gateway.protoc_gen_openapiv2.options.Swagger.consumes)
}
inline void Swagger::add_consumes(const char* value, std::size_t size) {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _internal_mutable_consumes()->Add()->assign(
      reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_add_pointer:grpc.gateway.protoc_gen_openapiv2.options.Swagger.consumes)
}
inline void Swagger::add_consumes(absl::string_view value) {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _internal_mutable_consumes()->Add()->assign(value.data(),
                                                     value.size());
  // @@protoc_insertion_point(field_add_string_piece:grpc.gateway.protoc_gen_openapiv2.options.Swagger.consumes)
}
inline const ::google::protobuf::RepeatedPtrField<std::string>&
Swagger::consumes() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_list:grpc.gateway.protoc_gen_openapiv2.options.Swagger.consumes)
  return _internal_consumes();
}
inline ::google::protobuf::RepeatedPtrField<std::string>*
Swagger::mutable_consumes() ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_mutable_list:grpc.gateway.protoc_gen_openapiv2.options.Swagger.consumes)
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  return _internal_mutable_consumes();
}
inline const ::google::protobuf::RepeatedPtrField<std::string>&
Swagger::_internal_consumes() const {
  PROTOBUF_TSAN_READ(&_impl_._tsan_detect_race);
  return _impl_.consumes_;
}
inline ::google::protobuf::RepeatedPtrField<std::string>*
Swagger::_internal_mutable_consumes() {
  PROTOBUF_TSAN_READ(&_impl_._tsan_detect_race);
  return &_impl_.consumes_;
}

// repeated string produces = 7;
inline int Swagger::_internal_produces_size() const {
  return _internal_produces().size();
}
inline int Swagger::produces_size() const {
  return _internal_produces_size();
}
inline void Swagger::clear_produces() {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _impl_.produces_.Clear();
}
inline std::string* Swagger::add_produces()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  std::string* _s = _internal_mutable_produces()->Add();
  // @@protoc_insertion_point(field_add_mutable:grpc.gateway.protoc_gen_openapiv2.options.Swagger.produces)
  return _s;
}
inline const std::string& Swagger::produces(int index) const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:grpc.gateway.protoc_gen_openapiv2.options.Swagger.produces)
  return _internal_produces().Get(index);
}
inline std::string* Swagger::mutable_produces(int index)
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_mutable:grpc.gateway.protoc_gen_openapiv2.options.Swagger.produces)
  return _internal_mutable_produces()->Mutable(index);
}
inline void Swagger::set_produces(int index, const std::string& value) {
  _internal_mutable_produces()->Mutable(index)->assign(value);
  // @@protoc_insertion_point(field_set:grpc.gateway.protoc_gen_openapiv2.options.Swagger.produces)
}
inline void Swagger::set_produces(int index, std::string&& value) {
  _internal_mutable_produces()->Mutable(index)->assign(std::move(value));
  // @@protoc_insertion_point(field_set:grpc.gateway.protoc_gen_openapiv2.options.Swagger.produces)
}
inline void Swagger::set_produces(int index, const char* value) {
  ABSL_DCHECK(value != nullptr);
  _internal_mutable_produces()->Mutable(index)->assign(value);
  // @@protoc_insertion_point(field_set_char:grpc.gateway.protoc_gen_openapiv2.options.Swagger.produces)
}
inline void Swagger::set_produces(int index, const char* value,
                              std::size_t size) {
  _internal_mutable_produces()->Mutable(index)->assign(
      reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_set_pointer:grpc.gateway.protoc_gen_openapiv2.options.Swagger.produces)
}
inline void Swagger::set_produces(int index, absl::string_view value) {
  _internal_mutable_produces()->Mutable(index)->assign(
      value.data(), value.size());
  // @@protoc_insertion_point(field_set_string_piece:grpc.gateway.protoc_gen_openapiv2.options.Swagger.produces)
}
inline void Swagger::add_produces(const std::string& value) {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _internal_mutable_produces()->Add()->assign(value);
  // @@protoc_insertion_point(field_add:grpc.gateway.protoc_gen_openapiv2.options.Swagger.produces)
}
inline void Swagger::add_produces(std::string&& value) {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _internal_mutable_produces()->Add(std::move(value));
  // @@protoc_insertion_point(field_add:grpc.gateway.protoc_gen_openapiv2.options.Swagger.produces)
}
inline void Swagger::add_produces(const char* value) {
  ABSL_DCHECK(value != nullptr);
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _internal_mutable_produces()->Add()->assign(value);
  // @@protoc_insertion_point(field_add_char:grpc.gateway.protoc_gen_openapiv2.options.Swagger.produces)
}
inline void Swagger::add_produces(const char* value, std::size_t size) {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _internal_mutable_produces()->Add()->assign(
      reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_add_pointer:grpc.gateway.protoc_gen_openapiv2.options.Swagger.produces)
}
inline void Swagger::add_produces(absl::string_view value) {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _internal_mutable_produces()->Add()->assign(value.data(),
                                                     value.size());
  // @@protoc_insertion_point(field_add_string_piece:grpc.gateway.protoc_gen_openapiv2.options.Swagger.produces)
}
inline const ::google::protobuf::RepeatedPtrField<std::string>&
Swagger::produces() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_list:grpc.gateway.protoc_gen_openapiv2.options.Swagger.produces)
  return _internal_produces();
}
inline ::google::protobuf::RepeatedPtrField<std::string>*
Swagger::mutable_produces() ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_mutable_list:grpc.gateway.protoc_gen_openapiv2.options.Swagger.produces)
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  return _internal_mutable_produces();
}
inline const ::google::protobuf::RepeatedPtrField<std::string>&
Swagger::_internal_produces() const {
  PROTOBUF_TSAN_READ(&_impl_._tsan_detect_race);
  return _impl_.produces_;
}
inline ::google::protobuf::RepeatedPtrField<std::string>*
Swagger::_internal_mutable_produces() {
  PROTOBUF_TSAN_READ(&_impl_._tsan_detect_race);
  return &_impl_.produces_;
}

// map<string, .grpc.gateway.protoc_gen_openapiv2.options.Response> responses = 10;
inline int Swagger::_internal_responses_size() const {
  return _internal_responses().size();
}
inline int Swagger::responses_size() const {
  return _internal_responses_size();
}
inline void Swagger::clear_responses() {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _impl_.responses_.Clear();
}
inline const ::google::protobuf::Map<std::string, ::grpc::gateway::protoc_gen_openapiv2::options::Response>& Swagger::_internal_responses() const {
  PROTOBUF_TSAN_READ(&_impl_._tsan_detect_race);
  return _impl_.responses_.GetMap();
}
inline const ::google::protobuf::Map<std::string, ::grpc::gateway::protoc_gen_openapiv2::options::Response>& Swagger::responses() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_map:grpc.gateway.protoc_gen_openapiv2.options.Swagger.responses)
  return _internal_responses();
}
inline ::google::protobuf::Map<std::string, ::grpc::gateway::protoc_gen_openapiv2::options::Response>* Swagger::_internal_mutable_responses() {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  return _impl_.responses_.MutableMap();
}
inline ::google::protobuf::Map<std::string, ::grpc::gateway::protoc_gen_openapiv2::options::Response>* Swagger::mutable_responses() ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_mutable_map:grpc.gateway.protoc_gen_openapiv2.options.Swagger.responses)
  return _internal_mutable_responses();
}

// .grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions security_definitions = 11;
inline bool Swagger::has_security_definitions() const {
  bool value = (_impl_._has_bits_[0] & 0x00000002u) != 0;
  PROTOBUF_ASSUME(!value || _impl_.security_definitions_ != nullptr);
  return value;
}
inline void Swagger::clear_security_definitions() {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  if (_impl_.security_definitions_ != nullptr) _impl_.security_definitions_->Clear();
  _impl_._has_bits_[0] &= ~0x00000002u;
}
inline const ::grpc::gateway::protoc_gen_openapiv2::options::SecurityDefinitions& Swagger::_internal_security_definitions() const {
  PROTOBUF_TSAN_READ(&_impl_._tsan_detect_race);
  const ::grpc::gateway::protoc_gen_openapiv2::options::SecurityDefinitions* p = _impl_.security_definitions_;
  return p != nullptr ? *p : reinterpret_cast<const ::grpc::gateway::protoc_gen_openapiv2::options::SecurityDefinitions&>(::grpc::gateway::protoc_gen_openapiv2::options::_SecurityDefinitions_default_instance_);
}
inline const ::grpc::gateway::protoc_gen_openapiv2::options::SecurityDefinitions& Swagger::security_definitions() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:grpc.gateway.protoc_gen_openapiv2.options.Swagger.security_definitions)
  return _internal_security_definitions();
}
inline void Swagger::unsafe_arena_set_allocated_security_definitions(::grpc::gateway::protoc_gen_openapiv2::options::SecurityDefinitions* value) {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.security_definitions_);
  }
  _impl_.security_definitions_ = reinterpret_cast<::grpc::gateway::protoc_gen_openapiv2::options::SecurityDefinitions*>(value);
  if (value != nullptr) {
    _impl_._has_bits_[0] |= 0x00000002u;
  } else {
    _impl_._has_bits_[0] &= ~0x00000002u;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:grpc.gateway.protoc_gen_openapiv2.options.Swagger.security_definitions)
}
inline ::grpc::gateway::protoc_gen_openapiv2::options::SecurityDefinitions* Swagger::release_security_definitions() {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);

  _impl_._has_bits_[0] &= ~0x00000002u;
  ::grpc::gateway::protoc_gen_openapiv2::options::SecurityDefinitions* released = _impl_.security_definitions_;
  _impl_.security_definitions_ = nullptr;
#ifdef PROTOBUF_FORCE_COPY_IN_RELEASE
  auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
  released = ::google::protobuf::internal::DuplicateIfNonNull(released);
  if (GetArena() == nullptr) {
    delete old;
  }
#else   // PROTOBUF_FORCE_COPY_IN_RELEASE
  if (GetArena() != nullptr) {
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
  }
#endif  // !PROTOBUF_FORCE_COPY_IN_RELEASE
  return released;
}
inline ::grpc::gateway::protoc_gen_openapiv2::options::SecurityDefinitions* Swagger::unsafe_arena_release_security_definitions() {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  // @@protoc_insertion_point(field_release:grpc.gateway.protoc_gen_openapiv2.options.Swagger.security_definitions)

  _impl_._has_bits_[0] &= ~0x00000002u;
  ::grpc::gateway::protoc_gen_openapiv2::options::SecurityDefinitions* temp = _impl_.security_definitions_;
  _impl_.security_definitions_ = nullptr;
  return temp;
}
inline ::grpc::gateway::protoc_gen_openapiv2::options::SecurityDefinitions* Swagger::_internal_mutable_security_definitions() {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  if (_impl_.security_definitions_ == nullptr) {
    auto* p = ::google::protobuf::Message::DefaultConstruct<::grpc::gateway::protoc_gen_openapiv2::options::SecurityDefinitions>(GetArena());
    _impl_.security_definitions_ = reinterpret_cast<::grpc::gateway::protoc_gen_openapiv2::options::SecurityDefinitions*>(p);
  }
  return _impl_.security_definitions_;
}
inline ::grpc::gateway::protoc_gen_openapiv2::options::SecurityDefinitions* Swagger::mutable_security_definitions() ABSL_ATTRIBUTE_LIFETIME_BOUND {
  _impl_._has_bits_[0] |= 0x00000002u;
  ::grpc::gateway::protoc_gen_openapiv2::options::SecurityDefinitions* _msg = _internal_mutable_security_definitions();
  // @@protoc_insertion_point(field_mutable:grpc.gateway.protoc_gen_openapiv2.options.Swagger.security_definitions)
  return _msg;
}
inline void Swagger::set_allocated_security_definitions(::grpc::gateway::protoc_gen_openapiv2::options::SecurityDefinitions* value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  if (message_arena == nullptr) {
    delete (_impl_.security_definitions_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = (value)->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    _impl_._has_bits_[0] |= 0x00000002u;
  } else {
    _impl_._has_bits_[0] &= ~0x00000002u;
  }

  _impl_.security_definitions_ = reinterpret_cast<::grpc::gateway::protoc_gen_openapiv2::options::SecurityDefinitions*>(value);
  // @@protoc_insertion_point(field_set_allocated:grpc.gateway.protoc_gen_openapiv2.options.Swagger.security_definitions)
}

// repeated .grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement security = 12;
inline int Swagger::_internal_security_size() const {
  return _internal_security().size();
}
inline int Swagger::security_size() const {
  return _internal_security_size();
}
inline void Swagger::clear_security() {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _impl_.security_.Clear();
}
inline ::grpc::gateway::protoc_gen_openapiv2::options::SecurityRequirement* Swagger::mutable_security(int index)
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_mutable:grpc.gateway.protoc_gen_openapiv2.options.Swagger.security)
  return _internal_mutable_security()->Mutable(index);
}
inline ::google::protobuf::RepeatedPtrField<::grpc::gateway::protoc_gen_openapiv2::options::SecurityRequirement>* Swagger::mutable_security()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_mutable_list:grpc.gateway.protoc_gen_openapiv2.options.Swagger.security)
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  return _internal_mutable_security();
}
inline const ::grpc::gateway::protoc_gen_openapiv2::options::SecurityRequirement& Swagger::security(int index) const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:grpc.gateway.protoc_gen_openapiv2.options.Swagger.security)
  return _internal_security().Get(index);
}
inline ::grpc::gateway::protoc_gen_openapiv2::options::SecurityRequirement* Swagger::add_security() ABSL_ATTRIBUTE_LIFETIME_BOUND {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  ::grpc::gateway::protoc_gen_openapiv2::options::SecurityRequirement* _add = _internal_mutable_security()->Add();
  // @@protoc_insertion_point(field_add:grpc.gateway.protoc_gen_openapiv2.options.Swagger.security)
  return _add;
}
inline const ::google::protobuf::RepeatedPtrField<::grpc::gateway::protoc_gen_openapiv2::options::SecurityRequirement>& Swagger::security() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_list:grpc.gateway.protoc_gen_openapiv2.options.Swagger.security)
  return _internal_security();
}
inline const ::google::protobuf::RepeatedPtrField<::grpc::gateway::protoc_gen_openapiv2::options::SecurityRequirement>&
Swagger::_internal_security() const {
  PROTOBUF_TSAN_READ(&_impl_._tsan_detect_race);
  return _impl_.security_;
}
inline ::google::protobuf::RepeatedPtrField<::grpc::gateway::protoc_gen_openapiv2::options::SecurityRequirement>*
Swagger::_internal_mutable_security() {
  PROTOBUF_TSAN_READ(&_impl_._tsan_detect_race);
  return &_impl_.security_;
}

// .grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation external_docs = 14;
inline bool Swagger::has_external_docs() const {
  bool value = (_impl_._has_bits_[0] & 0x00000004u) != 0;
  PROTOBUF_ASSUME(!value || _impl_.external_docs_ != nullptr);
  return value;
}
inline void Swagger::clear_external_docs() {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  if (_impl_.external_docs_ != nullptr) _impl_.external_docs_->Clear();
  _impl_._has_bits_[0] &= ~0x00000004u;
}
inline const ::grpc::gateway::protoc_gen_openapiv2::options::ExternalDocumentation& Swagger::_internal_external_docs() const {
  PROTOBUF_TSAN_READ(&_impl_._tsan_detect_race);
  const ::grpc::gateway::protoc_gen_openapiv2::options::ExternalDocumentation* p = _impl_.external_docs_;
  return p != nullptr ? *p : reinterpret_cast<const ::grpc::gateway::protoc_gen_openapiv2::options::ExternalDocumentation&>(::grpc::gateway::protoc_gen_openapiv2::options::_ExternalDocumentation_default_instance_);
}
inline const ::grpc::gateway::protoc_gen_openapiv2::options::ExternalDocumentation& Swagger::external_docs() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:grpc.gateway.protoc_gen_openapiv2.options.Swagger.external_docs)
  return _internal_external_docs();
}
inline void Swagger::unsafe_arena_set_allocated_external_docs(::grpc::gateway::protoc_gen_openapiv2::options::ExternalDocumentation* value) {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.external_docs_);
  }
  _impl_.external_docs_ = reinterpret_cast<::grpc::gateway::protoc_gen_openapiv2::options::ExternalDocumentation*>(value);
  if (value != nullptr) {
    _impl_._has_bits_[0] |= 0x00000004u;
  } else {
    _impl_._has_bits_[0] &= ~0x00000004u;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:grpc.gateway.protoc_gen_openapiv2.options.Swagger.external_docs)
}
inline ::grpc::gateway::protoc_gen_openapiv2::options::ExternalDocumentation* Swagger::release_external_docs() {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);

  _impl_._has_bits_[0] &= ~0x00000004u;
  ::grpc::gateway::protoc_gen_openapiv2::options::ExternalDocumentation* released = _impl_.external_docs_;
  _impl_.external_docs_ = nullptr;
#ifdef PROTOBUF_FORCE_COPY_IN_RELEASE
  auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
  released = ::google::protobuf::internal::DuplicateIfNonNull(released);
  if (GetArena() == nullptr) {
    delete old;
  }
#else   // PROTOBUF_FORCE_COPY_IN_RELEASE
  if (GetArena() != nullptr) {
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
  }
#endif  // !PROTOBUF_FORCE_COPY_IN_RELEASE
  return released;
}
inline ::grpc::gateway::protoc_gen_openapiv2::options::ExternalDocumentation* Swagger::unsafe_arena_release_external_docs() {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  // @@protoc_insertion_point(field_release:grpc.gateway.protoc_gen_openapiv2.options.Swagger.external_docs)

  _impl_._has_bits_[0] &= ~0x00000004u;
  ::grpc::gateway::protoc_gen_openapiv2::options::ExternalDocumentation* temp = _impl_.external_docs_;
  _impl_.external_docs_ = nullptr;
  return temp;
}
inline ::grpc::gateway::protoc_gen_openapiv2::options::ExternalDocumentation* Swagger::_internal_mutable_external_docs() {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  if (_impl_.external_docs_ == nullptr) {
    auto* p = ::google::protobuf::Message::DefaultConstruct<::grpc::gateway::protoc_gen_openapiv2::options::ExternalDocumentation>(GetArena());
    _impl_.external_docs_ = reinterpret_cast<::grpc::gateway::protoc_gen_openapiv2::options::ExternalDocumentation*>(p);
  }
  return _impl_.external_docs_;
}
inline ::grpc::gateway::protoc_gen_openapiv2::options::ExternalDocumentation* Swagger::mutable_external_docs() ABSL_ATTRIBUTE_LIFETIME_BOUND {
  _impl_._has_bits_[0] |= 0x00000004u;
  ::grpc::gateway::protoc_gen_openapiv2::options::ExternalDocumentation* _msg = _internal_mutable_external_docs();
  // @@protoc_insertion_point(field_mutable:grpc.gateway.protoc_gen_openapiv2.options.Swagger.external_docs)
  return _msg;
}
inline void Swagger::set_allocated_external_docs(::grpc::gateway::protoc_gen_openapiv2::options::ExternalDocumentation* value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  if (message_arena == nullptr) {
    delete (_impl_.external_docs_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = (value)->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    _impl_._has_bits_[0] |= 0x00000004u;
  } else {
    _impl_._has_bits_[0] &= ~0x00000004u;
  }

  _impl_.external_docs_ = reinterpret_cast<::grpc::gateway::protoc_gen_openapiv2::options::ExternalDocumentation*>(value);
  // @@protoc_insertion_point(field_set_allocated:grpc.gateway.protoc_gen_openapiv2.options.Swagger.external_docs)
}

// map<string, .google.protobuf.Value> extensions = 15;
inline int Swagger::_internal_extensions_size() const {
  return _internal_extensions().size();
}
inline int Swagger::extensions_size() const {
  return _internal_extensions_size();
}
inline const ::google::protobuf::Map<std::string, ::google::protobuf::Value>& Swagger::_internal_extensions() const {
  PROTOBUF_TSAN_READ(&_impl_._tsan_detect_race);
  return _impl_.extensions_.GetMap();
}
inline const ::google::protobuf::Map<std::string, ::google::protobuf::Value>& Swagger::extensions() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_map:grpc.gateway.protoc_gen_openapiv2.options.Swagger.extensions)
  return _internal_extensions();
}
inline ::google::protobuf::Map<std::string, ::google::protobuf::Value>* Swagger::_internal_mutable_extensions() {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  return _impl_.extensions_.MutableMap();
}
inline ::google::protobuf::Map<std::string, ::google::protobuf::Value>* Swagger::mutable_extensions() ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_mutable_map:grpc.gateway.protoc_gen_openapiv2.options.Swagger.extensions)
  return _internal_mutable_extensions();
}

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// Operation

// repeated string tags = 1;
inline int Operation::_internal_tags_size() const {
  return _internal_tags().size();
}
inline int Operation::tags_size() const {
  return _internal_tags_size();
}
inline void Operation::clear_tags() {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _impl_.tags_.Clear();
}
inline std::string* Operation::add_tags()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  std::string* _s = _internal_mutable_tags()->Add();
  // @@protoc_insertion_point(field_add_mutable:grpc.gateway.protoc_gen_openapiv2.options.Operation.tags)
  return _s;
}
inline const std::string& Operation::tags(int index) const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:grpc.gateway.protoc_gen_openapiv2.options.Operation.tags)
  return _internal_tags().Get(index);
}
inline std::string* Operation::mutable_tags(int index)
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_mutable:grpc.gateway.protoc_gen_openapiv2.options.Operation.tags)
  return _internal_mutable_tags()->Mutable(index);
}
inline void Operation::set_tags(int index, const std::string& value) {
  _internal_mutable_tags()->Mutable(index)->assign(value);
  // @@protoc_insertion_point(field_set:grpc.gateway.protoc_gen_openapiv2.options.Operation.tags)
}
inline void Operation::set_tags(int index, std::string&& value) {
  _internal_mutable_tags()->Mutable(index)->assign(std::move(value));
  // @@protoc_insertion_point(field_set:grpc.gateway.protoc_gen_openapiv2.options.Operation.tags)
}
inline void Operation::set_tags(int index, const char* value) {
  ABSL_DCHECK(value != nullptr);
  _internal_mutable_tags()->Mutable(index)->assign(value);
  // @@protoc_insertion_point(field_set_char:grpc.gateway.protoc_gen_openapiv2.options.Operation.tags)
}
inline void Operation::set_tags(int index, const char* value,
                              std::size_t size) {
  _internal_mutable_tags()->Mutable(index)->assign(
      reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_set_pointer:grpc.gateway.protoc_gen_openapiv2.options.Operation.tags)
}
inline void Operation::set_tags(int index, absl::string_view value) {
  _internal_mutable_tags()->Mutable(index)->assign(
      value.data(), value.size());
  // @@protoc_insertion_point(field_set_string_piece:grpc.gateway.protoc_gen_openapiv2.options.Operation.tags)
}
inline void Operation::add_tags(const std::string& value) {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _internal_mutable_tags()->Add()->assign(value);
  // @@protoc_insertion_point(field_add:grpc.gateway.protoc_gen_openapiv2.options.Operation.tags)
}
inline void Operation::add_tags(std::string&& value) {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _internal_mutable_tags()->Add(std::move(value));
  // @@protoc_insertion_point(field_add:grpc.gateway.protoc_gen_openapiv2.options.Operation.tags)
}
inline void Operation::add_tags(const char* value) {
  ABSL_DCHECK(value != nullptr);
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _internal_mutable_tags()->Add()->assign(value);
  // @@protoc_insertion_point(field_add_char:grpc.gateway.protoc_gen_openapiv2.options.Operation.tags)
}
inline void Operation::add_tags(const char* value, std::size_t size) {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _internal_mutable_tags()->Add()->assign(
      reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_add_pointer:grpc.gateway.protoc_gen_openapiv2.options.Operation.tags)
}
inline void Operation::add_tags(absl::string_view value) {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _internal_mutable_tags()->Add()->assign(value.data(),
                                                     value.size());
  // @@protoc_insertion_point(field_add_string_piece:grpc.gateway.protoc_gen_openapiv2.options.Operation.tags)
}
inline const ::google::protobuf::RepeatedPtrField<std::string>&
Operation::tags() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_list:grpc.gateway.protoc_gen_openapiv2.options.Operation.tags)
  return _internal_tags();
}
inline ::google::protobuf::RepeatedPtrField<std::string>*
Operation::mutable_tags() ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_mutable_list:grpc.gateway.protoc_gen_openapiv2.options.Operation.tags)
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  return _internal_mutable_tags();
}
inline const ::google::protobuf::RepeatedPtrField<std::string>&
Operation::_internal_tags() const {
  PROTOBUF_TSAN_READ(&_impl_._tsan_detect_race);
  return _impl_.tags_;
}
inline ::google::protobuf::RepeatedPtrField<std::string>*
Operation::_internal_mutable_tags() {
  PROTOBUF_TSAN_READ(&_impl_._tsan_detect_race);
  return &_impl_.tags_;
}

// string summary = 2;
inline void Operation::clear_summary() {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _impl_.summary_.ClearToEmpty();
}
inline const std::string& Operation::summary() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:grpc.gateway.protoc_gen_openapiv2.options.Operation.summary)
  return _internal_summary();
}
template <typename Arg_, typename... Args_>
inline PROTOBUF_ALWAYS_INLINE void Operation::set_summary(Arg_&& arg,
                                                     Args_... args) {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _impl_.summary_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:grpc.gateway.protoc_gen_openapiv2.options.Operation.summary)
}
inline std::string* Operation::mutable_summary() ABSL_ATTRIBUTE_LIFETIME_BOUND {
  std::string* _s = _internal_mutable_summary();
  // @@protoc_insertion_point(field_mutable:grpc.gateway.protoc_gen_openapiv2.options.Operation.summary)
  return _s;
}
inline const std::string& Operation::_internal_summary() const {
  PROTOBUF_TSAN_READ(&_impl_._tsan_detect_race);
  return _impl_.summary_.Get();
}
inline void Operation::_internal_set_summary(const std::string& value) {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _impl_.summary_.Set(value, GetArena());
}
inline std::string* Operation::_internal_mutable_summary() {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  return _impl_.summary_.Mutable( GetArena());
}
inline std::string* Operation::release_summary() {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  // @@protoc_insertion_point(field_release:grpc.gateway.protoc_gen_openapiv2.options.Operation.summary)
  return _impl_.summary_.Release();
}
inline void Operation::set_allocated_summary(std::string* value) {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _impl_.summary_.SetAllocated(value, GetArena());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
        if (_impl_.summary_.IsDefault()) {
          _impl_.summary_.Set("", GetArena());
        }
  #endif  // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:grpc.gateway.protoc_gen_openapiv2.options.Operation.summary)
}

// string description = 3;
inline void Operation::clear_description() {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _impl_.description_.ClearToEmpty();
}
inline const std::string& Operation::description() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:grpc.gateway.protoc_gen_openapiv2.options.Operation.description)
  return _internal_description();
}
template <typename Arg_, typename... Args_>
inline PROTOBUF_ALWAYS_INLINE void Operation::set_description(Arg_&& arg,
                                                     Args_... args) {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _impl_.description_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:grpc.gateway.protoc_gen_openapiv2.options.Operation.description)
}
inline std::string* Operation::mutable_description() ABSL_ATTRIBUTE_LIFETIME_BOUND {
  std::string* _s = _internal_mutable_description();
  // @@protoc_insertion_point(field_mutable:grpc.gateway.protoc_gen_openapiv2.options.Operation.description)
  return _s;
}
inline const std::string& Operation::_internal_description() const {
  PROTOBUF_TSAN_READ(&_impl_._tsan_detect_race);
  return _impl_.description_.Get();
}
inline void Operation::_internal_set_description(const std::string& value) {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _impl_.description_.Set(value, GetArena());
}
inline std::string* Operation::_internal_mutable_description() {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  return _impl_.description_.Mutable( GetArena());
}
inline std::string* Operation::release_description() {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  // @@protoc_insertion_point(field_release:grpc.gateway.protoc_gen_openapiv2.options.Operation.description)
  return _impl_.description_.Release();
}
inline void Operation::set_allocated_description(std::string* value) {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _impl_.description_.SetAllocated(value, GetArena());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
        if (_impl_.description_.IsDefault()) {
          _impl_.description_.Set("", GetArena());
        }
  #endif  // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:grpc.gateway.protoc_gen_openapiv2.options.Operation.description)
}

// .grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation external_docs = 4;
inline bool Operation::has_external_docs() const {
  bool value = (_impl_._has_bits_[0] & 0x00000001u) != 0;
  PROTOBUF_ASSUME(!value || _impl_.external_docs_ != nullptr);
  return value;
}
inline void Operation::clear_external_docs() {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  if (_impl_.external_docs_ != nullptr) _impl_.external_docs_->Clear();
  _impl_._has_bits_[0] &= ~0x00000001u;
}
inline const ::grpc::gateway::protoc_gen_openapiv2::options::ExternalDocumentation& Operation::_internal_external_docs() const {
  PROTOBUF_TSAN_READ(&_impl_._tsan_detect_race);
  const ::grpc::gateway::protoc_gen_openapiv2::options::ExternalDocumentation* p = _impl_.external_docs_;
  return p != nullptr ? *p : reinterpret_cast<const ::grpc::gateway::protoc_gen_openapiv2::options::ExternalDocumentation&>(::grpc::gateway::protoc_gen_openapiv2::options::_ExternalDocumentation_default_instance_);
}
inline const ::grpc::gateway::protoc_gen_openapiv2::options::ExternalDocumentation& Operation::external_docs() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:grpc.gateway.protoc_gen_openapiv2.options.Operation.external_docs)
  return _internal_external_docs();
}
inline void Operation::unsafe_arena_set_allocated_external_docs(::grpc::gateway::protoc_gen_openapiv2::options::ExternalDocumentation* value) {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.external_docs_);
  }
  _impl_.external_docs_ = reinterpret_cast<::grpc::gateway::protoc_gen_openapiv2::options::ExternalDocumentation*>(value);
  if (value != nullptr) {
    _impl_._has_bits_[0] |= 0x00000001u;
  } else {
    _impl_._has_bits_[0] &= ~0x00000001u;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:grpc.gateway.protoc_gen_openapiv2.options.Operation.external_docs)
}
inline ::grpc::gateway::protoc_gen_openapiv2::options::ExternalDocumentation* Operation::release_external_docs() {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);

  _impl_._has_bits_[0] &= ~0x00000001u;
  ::grpc::gateway::protoc_gen_openapiv2::options::ExternalDocumentation* released = _impl_.external_docs_;
  _impl_.external_docs_ = nullptr;
#ifdef PROTOBUF_FORCE_COPY_IN_RELEASE
  auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
  released = ::google::protobuf::internal::DuplicateIfNonNull(released);
  if (GetArena() == nullptr) {
    delete old;
  }
#else   // PROTOBUF_FORCE_COPY_IN_RELEASE
  if (GetArena() != nullptr) {
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
  }
#endif  // !PROTOBUF_FORCE_COPY_IN_RELEASE
  return released;
}
inline ::grpc::gateway::protoc_gen_openapiv2::options::ExternalDocumentation* Operation::unsafe_arena_release_external_docs() {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  // @@protoc_insertion_point(field_release:grpc.gateway.protoc_gen_openapiv2.options.Operation.external_docs)

  _impl_._has_bits_[0] &= ~0x00000001u;
  ::grpc::gateway::protoc_gen_openapiv2::options::ExternalDocumentation* temp = _impl_.external_docs_;
  _impl_.external_docs_ = nullptr;
  return temp;
}
inline ::grpc::gateway::protoc_gen_openapiv2::options::ExternalDocumentation* Operation::_internal_mutable_external_docs() {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  if (_impl_.external_docs_ == nullptr) {
    auto* p = ::google::protobuf::Message::DefaultConstruct<::grpc::gateway::protoc_gen_openapiv2::options::ExternalDocumentation>(GetArena());
    _impl_.external_docs_ = reinterpret_cast<::grpc::gateway::protoc_gen_openapiv2::options::ExternalDocumentation*>(p);
  }
  return _impl_.external_docs_;
}
inline ::grpc::gateway::protoc_gen_openapiv2::options::ExternalDocumentation* Operation::mutable_external_docs() ABSL_ATTRIBUTE_LIFETIME_BOUND {
  _impl_._has_bits_[0] |= 0x00000001u;
  ::grpc::gateway::protoc_gen_openapiv2::options::ExternalDocumentation* _msg = _internal_mutable_external_docs();
  // @@protoc_insertion_point(field_mutable:grpc.gateway.protoc_gen_openapiv2.options.Operation.external_docs)
  return _msg;
}
inline void Operation::set_allocated_external_docs(::grpc::gateway::protoc_gen_openapiv2::options::ExternalDocumentation* value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  if (message_arena == nullptr) {
    delete (_impl_.external_docs_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = (value)->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    _impl_._has_bits_[0] |= 0x00000001u;
  } else {
    _impl_._has_bits_[0] &= ~0x00000001u;
  }

  _impl_.external_docs_ = reinterpret_cast<::grpc::gateway::protoc_gen_openapiv2::options::ExternalDocumentation*>(value);
  // @@protoc_insertion_point(field_set_allocated:grpc.gateway.protoc_gen_openapiv2.options.Operation.external_docs)
}

// string operation_id = 5;
inline void Operation::clear_operation_id() {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _impl_.operation_id_.ClearToEmpty();
}
inline const std::string& Operation::operation_id() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:grpc.gateway.protoc_gen_openapiv2.options.Operation.operation_id)
  return _internal_operation_id();
}
template <typename Arg_, typename... Args_>
inline PROTOBUF_ALWAYS_INLINE void Operation::set_operation_id(Arg_&& arg,
                                                     Args_... args) {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _impl_.operation_id_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:grpc.gateway.protoc_gen_openapiv2.options.Operation.operation_id)
}
inline std::string* Operation::mutable_operation_id() ABSL_ATTRIBUTE_LIFETIME_BOUND {
  std::string* _s = _internal_mutable_operation_id();
  // @@protoc_insertion_point(field_mutable:grpc.gateway.protoc_gen_openapiv2.options.Operation.operation_id)
  return _s;
}
inline const std::string& Operation::_internal_operation_id() const {
  PROTOBUF_TSAN_READ(&_impl_._tsan_detect_race);
  return _impl_.operation_id_.Get();
}
inline void Operation::_internal_set_operation_id(const std::string& value) {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _impl_.operation_id_.Set(value, GetArena());
}
inline std::string* Operation::_internal_mutable_operation_id() {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  return _impl_.operation_id_.Mutable( GetArena());
}
inline std::string* Operation::release_operation_id() {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  // @@protoc_insertion_point(field_release:grpc.gateway.protoc_gen_openapiv2.options.Operation.operation_id)
  return _impl_.operation_id_.Release();
}
inline void Operation::set_allocated_operation_id(std::string* value) {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _impl_.operation_id_.SetAllocated(value, GetArena());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
        if (_impl_.operation_id_.IsDefault()) {
          _impl_.operation_id_.Set("", GetArena());
        }
  #endif  // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:grpc.gateway.protoc_gen_openapiv2.options.Operation.operation_id)
}

// repeated string consumes = 6;
inline int Operation::_internal_consumes_size() const {
  return _internal_consumes().size();
}
inline int Operation::consumes_size() const {
  return _internal_consumes_size();
}
inline void Operation::clear_consumes() {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _impl_.consumes_.Clear();
}
inline std::string* Operation::add_consumes()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  std::string* _s = _internal_mutable_consumes()->Add();
  // @@protoc_insertion_point(field_add_mutable:grpc.gateway.protoc_gen_openapiv2.options.Operation.consumes)
  return _s;
}
inline const std::string& Operation::consumes(int index) const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:grpc.gateway.protoc_gen_openapiv2.options.Operation.consumes)
  return _internal_consumes().Get(index);
}
inline std::string* Operation::mutable_consumes(int index)
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_mutable:grpc.gateway.protoc_gen_openapiv2.options.Operation.consumes)
  return _internal_mutable_consumes()->Mutable(index);
}
inline void Operation::set_consumes(int index, const std::string& value) {
  _internal_mutable_consumes()->Mutable(index)->assign(value);
  // @@protoc_insertion_point(field_set:grpc.gateway.protoc_gen_openapiv2.options.Operation.consumes)
}
inline void Operation::set_consumes(int index, std::string&& value) {
  _internal_mutable_consumes()->Mutable(index)->assign(std::move(value));
  // @@protoc_insertion_point(field_set:grpc.gateway.protoc_gen_openapiv2.options.Operation.consumes)
}
inline void Operation::set_consumes(int index, const char* value) {
  ABSL_DCHECK(value != nullptr);
  _internal_mutable_consumes()->Mutable(index)->assign(value);
  // @@protoc_insertion_point(field_set_char:grpc.gateway.protoc_gen_openapiv2.options.Operation.consumes)
}
inline void Operation::set_consumes(int index, const char* value,
                              std::size_t size) {
  _internal_mutable_consumes()->Mutable(index)->assign(
      reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_set_pointer:grpc.gateway.protoc_gen_openapiv2.options.Operation.consumes)
}
inline void Operation::set_consumes(int index, absl::string_view value) {
  _internal_mutable_consumes()->Mutable(index)->assign(
      value.data(), value.size());
  // @@protoc_insertion_point(field_set_string_piece:grpc.gateway.protoc_gen_openapiv2.options.Operation.consumes)
}
inline void Operation::add_consumes(const std::string& value) {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _internal_mutable_consumes()->Add()->assign(value);
  // @@protoc_insertion_point(field_add:grpc.gateway.protoc_gen_openapiv2.options.Operation.consumes)
}
inline void Operation::add_consumes(std::string&& value) {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _internal_mutable_consumes()->Add(std::move(value));
  // @@protoc_insertion_point(field_add:grpc.gateway.protoc_gen_openapiv2.options.Operation.consumes)
}
inline void Operation::add_consumes(const char* value) {
  ABSL_DCHECK(value != nullptr);
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _internal_mutable_consumes()->Add()->assign(value);
  // @@protoc_insertion_point(field_add_char:grpc.gateway.protoc_gen_openapiv2.options.Operation.consumes)
}
inline void Operation::add_consumes(const char* value, std::size_t size) {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _internal_mutable_consumes()->Add()->assign(
      reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_add_pointer:grpc.gateway.protoc_gen_openapiv2.options.Operation.consumes)
}
inline void Operation::add_consumes(absl::string_view value) {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _internal_mutable_consumes()->Add()->assign(value.data(),
                                                     value.size());
  // @@protoc_insertion_point(field_add_string_piece:grpc.gateway.protoc_gen_openapiv2.options.Operation.consumes)
}
inline const ::google::protobuf::RepeatedPtrField<std::string>&
Operation::consumes() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_list:grpc.gateway.protoc_gen_openapiv2.options.Operation.consumes)
  return _internal_consumes();
}
inline ::google::protobuf::RepeatedPtrField<std::string>*
Operation::mutable_consumes() ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_mutable_list:grpc.gateway.protoc_gen_openapiv2.options.Operation.consumes)
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  return _internal_mutable_consumes();
}
inline const ::google::protobuf::RepeatedPtrField<std::string>&
Operation::_internal_consumes() const {
  PROTOBUF_TSAN_READ(&_impl_._tsan_detect_race);
  return _impl_.consumes_;
}
inline ::google::protobuf::RepeatedPtrField<std::string>*
Operation::_internal_mutable_consumes() {
  PROTOBUF_TSAN_READ(&_impl_._tsan_detect_race);
  return &_impl_.consumes_;
}

// repeated string produces = 7;
inline int Operation::_internal_produces_size() const {
  return _internal_produces().size();
}
inline int Operation::produces_size() const {
  return _internal_produces_size();
}
inline void Operation::clear_produces() {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _impl_.produces_.Clear();
}
inline std::string* Operation::add_produces()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  std::string* _s = _internal_mutable_produces()->Add();
  // @@protoc_insertion_point(field_add_mutable:grpc.gateway.protoc_gen_openapiv2.options.Operation.produces)
  return _s;
}
inline const std::string& Operation::produces(int index) const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:grpc.gateway.protoc_gen_openapiv2.options.Operation.produces)
  return _internal_produces().Get(index);
}
inline std::string* Operation::mutable_produces(int index)
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_mutable:grpc.gateway.protoc_gen_openapiv2.options.Operation.produces)
  return _internal_mutable_produces()->Mutable(index);
}
inline void Operation::set_produces(int index, const std::string& value) {
  _internal_mutable_produces()->Mutable(index)->assign(value);
  // @@protoc_insertion_point(field_set:grpc.gateway.protoc_gen_openapiv2.options.Operation.produces)
}
inline void Operation::set_produces(int index, std::string&& value) {
  _internal_mutable_produces()->Mutable(index)->assign(std::move(value));
  // @@protoc_insertion_point(field_set:grpc.gateway.protoc_gen_openapiv2.options.Operation.produces)
}
inline void Operation::set_produces(int index, const char* value) {
  ABSL_DCHECK(value != nullptr);
  _internal_mutable_produces()->Mutable(index)->assign(value);
  // @@protoc_insertion_point(field_set_char:grpc.gateway.protoc_gen_openapiv2.options.Operation.produces)
}
inline void Operation::set_produces(int index, const char* value,
                              std::size_t size) {
  _internal_mutable_produces()->Mutable(index)->assign(
      reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_set_pointer:grpc.gateway.protoc_gen_openapiv2.options.Operation.produces)
}
inline void Operation::set_produces(int index, absl::string_view value) {
  _internal_mutable_produces()->Mutable(index)->assign(
      value.data(), value.size());
  // @@protoc_insertion_point(field_set_string_piece:grpc.gateway.protoc_gen_openapiv2.options.Operation.produces)
}
inline void Operation::add_produces(const std::string& value) {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _internal_mutable_produces()->Add()->assign(value);
  // @@protoc_insertion_point(field_add:grpc.gateway.protoc_gen_openapiv2.options.Operation.produces)
}
inline void Operation::add_produces(std::string&& value) {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _internal_mutable_produces()->Add(std::move(value));
  // @@protoc_insertion_point(field_add:grpc.gateway.protoc_gen_openapiv2.options.Operation.produces)
}
inline void Operation::add_produces(const char* value) {
  ABSL_DCHECK(value != nullptr);
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _internal_mutable_produces()->Add()->assign(value);
  // @@protoc_insertion_point(field_add_char:grpc.gateway.protoc_gen_openapiv2.options.Operation.produces)
}
inline void Operation::add_produces(const char* value, std::size_t size) {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _internal_mutable_produces()->Add()->assign(
      reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_add_pointer:grpc.gateway.protoc_gen_openapiv2.options.Operation.produces)
}
inline void Operation::add_produces(absl::string_view value) {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _internal_mutable_produces()->Add()->assign(value.data(),
                                                     value.size());
  // @@protoc_insertion_point(field_add_string_piece:grpc.gateway.protoc_gen_openapiv2.options.Operation.produces)
}
inline const ::google::protobuf::RepeatedPtrField<std::string>&
Operation::produces() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_list:grpc.gateway.protoc_gen_openapiv2.options.Operation.produces)
  return _internal_produces();
}
inline ::google::protobuf::RepeatedPtrField<std::string>*
Operation::mutable_produces() ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_mutable_list:grpc.gateway.protoc_gen_openapiv2.options.Operation.produces)
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  return _internal_mutable_produces();
}
inline const ::google::protobuf::RepeatedPtrField<std::string>&
Operation::_internal_produces() const {
  PROTOBUF_TSAN_READ(&_impl_._tsan_detect_race);
  return _impl_.produces_;
}
inline ::google::protobuf::RepeatedPtrField<std::string>*
Operation::_internal_mutable_produces() {
  PROTOBUF_TSAN_READ(&_impl_._tsan_detect_race);
  return &_impl_.produces_;
}

// map<string, .grpc.gateway.protoc_gen_openapiv2.options.Response> responses = 9;
inline int Operation::_internal_responses_size() const {
  return _internal_responses().size();
}
inline int Operation::responses_size() const {
  return _internal_responses_size();
}
inline void Operation::clear_responses() {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _impl_.responses_.Clear();
}
inline const ::google::protobuf::Map<std::string, ::grpc::gateway::protoc_gen_openapiv2::options::Response>& Operation::_internal_responses() const {
  PROTOBUF_TSAN_READ(&_impl_._tsan_detect_race);
  return _impl_.responses_.GetMap();
}
inline const ::google::protobuf::Map<std::string, ::grpc::gateway::protoc_gen_openapiv2::options::Response>& Operation::responses() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_map:grpc.gateway.protoc_gen_openapiv2.options.Operation.responses)
  return _internal_responses();
}
inline ::google::protobuf::Map<std::string, ::grpc::gateway::protoc_gen_openapiv2::options::Response>* Operation::_internal_mutable_responses() {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  return _impl_.responses_.MutableMap();
}
inline ::google::protobuf::Map<std::string, ::grpc::gateway::protoc_gen_openapiv2::options::Response>* Operation::mutable_responses() ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_mutable_map:grpc.gateway.protoc_gen_openapiv2.options.Operation.responses)
  return _internal_mutable_responses();
}

// repeated .grpc.gateway.protoc_gen_openapiv2.options.Scheme schemes = 10;
inline int Operation::_internal_schemes_size() const {
  return _internal_schemes().size();
}
inline int Operation::schemes_size() const {
  return _internal_schemes_size();
}
inline void Operation::clear_schemes() {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _impl_.schemes_.Clear();
}
inline ::grpc::gateway::protoc_gen_openapiv2::options::Scheme Operation::schemes(int index) const {
  // @@protoc_insertion_point(field_get:grpc.gateway.protoc_gen_openapiv2.options.Operation.schemes)
  return static_cast<::grpc::gateway::protoc_gen_openapiv2::options::Scheme>(_internal_schemes().Get(index));
}
inline void Operation::set_schemes(int index, ::grpc::gateway::protoc_gen_openapiv2::options::Scheme value) {
  _internal_mutable_schemes()->Set(index, value);
  // @@protoc_insertion_point(field_set:grpc.gateway.protoc_gen_openapiv2.options.Operation.schemes)
}
inline void Operation::add_schemes(::grpc::gateway::protoc_gen_openapiv2::options::Scheme value) {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _internal_mutable_schemes()->Add(value);
  // @@protoc_insertion_point(field_add:grpc.gateway.protoc_gen_openapiv2.options.Operation.schemes)
}
inline const ::google::protobuf::RepeatedField<int>& Operation::schemes() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_list:grpc.gateway.protoc_gen_openapiv2.options.Operation.schemes)
  return _internal_schemes();
}
inline ::google::protobuf::RepeatedField<int>* Operation::mutable_schemes()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_mutable_list:grpc.gateway.protoc_gen_openapiv2.options.Operation.schemes)
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  return _internal_mutable_schemes();
}
inline const ::google::protobuf::RepeatedField<int>& Operation::_internal_schemes()
    const {
  PROTOBUF_TSAN_READ(&_impl_._tsan_detect_race);
  return _impl_.schemes_;
}
inline ::google::protobuf::RepeatedField<int>* Operation::_internal_mutable_schemes() {
  PROTOBUF_TSAN_READ(&_impl_._tsan_detect_race);
  return &_impl_.schemes_;
}

// bool deprecated = 11;
inline void Operation::clear_deprecated() {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _impl_.deprecated_ = false;
}
inline bool Operation::deprecated() const {
  // @@protoc_insertion_point(field_get:grpc.gateway.protoc_gen_openapiv2.options.Operation.deprecated)
  return _internal_deprecated();
}
inline void Operation::set_deprecated(bool value) {
  _internal_set_deprecated(value);
  // @@protoc_insertion_point(field_set:grpc.gateway.protoc_gen_openapiv2.options.Operation.deprecated)
}
inline bool Operation::_internal_deprecated() const {
  PROTOBUF_TSAN_READ(&_impl_._tsan_detect_race);
  return _impl_.deprecated_;
}
inline void Operation::_internal_set_deprecated(bool value) {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _impl_.deprecated_ = value;
}

// repeated .grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement security = 12;
inline int Operation::_internal_security_size() const {
  return _internal_security().size();
}
inline int Operation::security_size() const {
  return _internal_security_size();
}
inline void Operation::clear_security() {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _impl_.security_.Clear();
}
inline ::grpc::gateway::protoc_gen_openapiv2::options::SecurityRequirement* Operation::mutable_security(int index)
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_mutable:grpc.gateway.protoc_gen_openapiv2.options.Operation.security)
  return _internal_mutable_security()->Mutable(index);
}
inline ::google::protobuf::RepeatedPtrField<::grpc::gateway::protoc_gen_openapiv2::options::SecurityRequirement>* Operation::mutable_security()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_mutable_list:grpc.gateway.protoc_gen_openapiv2.options.Operation.security)
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  return _internal_mutable_security();
}
inline const ::grpc::gateway::protoc_gen_openapiv2::options::SecurityRequirement& Operation::security(int index) const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:grpc.gateway.protoc_gen_openapiv2.options.Operation.security)
  return _internal_security().Get(index);
}
inline ::grpc::gateway::protoc_gen_openapiv2::options::SecurityRequirement* Operation::add_security() ABSL_ATTRIBUTE_LIFETIME_BOUND {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  ::grpc::gateway::protoc_gen_openapiv2::options::SecurityRequirement* _add = _internal_mutable_security()->Add();
  // @@protoc_insertion_point(field_add:grpc.gateway.protoc_gen_openapiv2.options.Operation.security)
  return _add;
}
inline const ::google::protobuf::RepeatedPtrField<::grpc::gateway::protoc_gen_openapiv2::options::SecurityRequirement>& Operation::security() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_list:grpc.gateway.protoc_gen_openapiv2.options.Operation.security)
  return _internal_security();
}
inline const ::google::protobuf::RepeatedPtrField<::grpc::gateway::protoc_gen_openapiv2::options::SecurityRequirement>&
Operation::_internal_security() const {
  PROTOBUF_TSAN_READ(&_impl_._tsan_detect_race);
  return _impl_.security_;
}
inline ::google::protobuf::RepeatedPtrField<::grpc::gateway::protoc_gen_openapiv2::options::SecurityRequirement>*
Operation::_internal_mutable_security() {
  PROTOBUF_TSAN_READ(&_impl_._tsan_detect_race);
  return &_impl_.security_;
}

// map<string, .google.protobuf.Value> extensions = 13;
inline int Operation::_internal_extensions_size() const {
  return _internal_extensions().size();
}
inline int Operation::extensions_size() const {
  return _internal_extensions_size();
}
inline const ::google::protobuf::Map<std::string, ::google::protobuf::Value>& Operation::_internal_extensions() const {
  PROTOBUF_TSAN_READ(&_impl_._tsan_detect_race);
  return _impl_.extensions_.GetMap();
}
inline const ::google::protobuf::Map<std::string, ::google::protobuf::Value>& Operation::extensions() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_map:grpc.gateway.protoc_gen_openapiv2.options.Operation.extensions)
  return _internal_extensions();
}
inline ::google::protobuf::Map<std::string, ::google::protobuf::Value>* Operation::_internal_mutable_extensions() {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  return _impl_.extensions_.MutableMap();
}
inline ::google::protobuf::Map<std::string, ::google::protobuf::Value>* Operation::mutable_extensions() ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_mutable_map:grpc.gateway.protoc_gen_openapiv2.options.Operation.extensions)
  return _internal_mutable_extensions();
}

// -------------------------------------------------------------------

// Header

// string description = 1;
inline void Header::clear_description() {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _impl_.description_.ClearToEmpty();
}
inline const std::string& Header::description() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:grpc.gateway.protoc_gen_openapiv2.options.Header.description)
  return _internal_description();
}
template <typename Arg_, typename... Args_>
inline PROTOBUF_ALWAYS_INLINE void Header::set_description(Arg_&& arg,
                                                     Args_... args) {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _impl_.description_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:grpc.gateway.protoc_gen_openapiv2.options.Header.description)
}
inline std::string* Header::mutable_description() ABSL_ATTRIBUTE_LIFETIME_BOUND {
  std::string* _s = _internal_mutable_description();
  // @@protoc_insertion_point(field_mutable:grpc.gateway.protoc_gen_openapiv2.options.Header.description)
  return _s;
}
inline const std::string& Header::_internal_description() const {
  PROTOBUF_TSAN_READ(&_impl_._tsan_detect_race);
  return _impl_.description_.Get();
}
inline void Header::_internal_set_description(const std::string& value) {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _impl_.description_.Set(value, GetArena());
}
inline std::string* Header::_internal_mutable_description() {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  return _impl_.description_.Mutable( GetArena());
}
inline std::string* Header::release_description() {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  // @@protoc_insertion_point(field_release:grpc.gateway.protoc_gen_openapiv2.options.Header.description)
  return _impl_.description_.Release();
}
inline void Header::set_allocated_description(std::string* value) {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _impl_.description_.SetAllocated(value, GetArena());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
        if (_impl_.description_.IsDefault()) {
          _impl_.description_.Set("", GetArena());
        }
  #endif  // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:grpc.gateway.protoc_gen_openapiv2.options.Header.description)
}

// string type = 2;
inline void Header::clear_type() {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _impl_.type_.ClearToEmpty();
}
inline const std::string& Header::type() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:grpc.gateway.protoc_gen_openapiv2.options.Header.type)
  return _internal_type();
}
template <typename Arg_, typename... Args_>
inline PROTOBUF_ALWAYS_INLINE void Header::set_type(Arg_&& arg,
                                                     Args_... args) {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _impl_.type_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:grpc.gateway.protoc_gen_openapiv2.options.Header.type)
}
inline std::string* Header::mutable_type() ABSL_ATTRIBUTE_LIFETIME_BOUND {
  std::string* _s = _internal_mutable_type();
  // @@protoc_insertion_point(field_mutable:grpc.gateway.protoc_gen_openapiv2.options.Header.type)
  return _s;
}
inline const std::string& Header::_internal_type() const {
  PROTOBUF_TSAN_READ(&_impl_._tsan_detect_race);
  return _impl_.type_.Get();
}
inline void Header::_internal_set_type(const std::string& value) {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _impl_.type_.Set(value, GetArena());
}
inline std::string* Header::_internal_mutable_type() {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  return _impl_.type_.Mutable( GetArena());
}
inline std::string* Header::release_type() {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  // @@protoc_insertion_point(field_release:grpc.gateway.protoc_gen_openapiv2.options.Header.type)
  return _impl_.type_.Release();
}
inline void Header::set_allocated_type(std::string* value) {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _impl_.type_.SetAllocated(value, GetArena());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
        if (_impl_.type_.IsDefault()) {
          _impl_.type_.Set("", GetArena());
        }
  #endif  // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:grpc.gateway.protoc_gen_openapiv2.options.Header.type)
}

// string format = 3;
inline void Header::clear_format() {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _impl_.format_.ClearToEmpty();
}
inline const std::string& Header::format() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:grpc.gateway.protoc_gen_openapiv2.options.Header.format)
  return _internal_format();
}
template <typename Arg_, typename... Args_>
inline PROTOBUF_ALWAYS_INLINE void Header::set_format(Arg_&& arg,
                                                     Args_... args) {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _impl_.format_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:grpc.gateway.protoc_gen_openapiv2.options.Header.format)
}
inline std::string* Header::mutable_format() ABSL_ATTRIBUTE_LIFETIME_BOUND {
  std::string* _s = _internal_mutable_format();
  // @@protoc_insertion_point(field_mutable:grpc.gateway.protoc_gen_openapiv2.options.Header.format)
  return _s;
}
inline const std::string& Header::_internal_format() const {
  PROTOBUF_TSAN_READ(&_impl_._tsan_detect_race);
  return _impl_.format_.Get();
}
inline void Header::_internal_set_format(const std::string& value) {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _impl_.format_.Set(value, GetArena());
}
inline std::string* Header::_internal_mutable_format() {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  return _impl_.format_.Mutable( GetArena());
}
inline std::string* Header::release_format() {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  // @@protoc_insertion_point(field_release:grpc.gateway.protoc_gen_openapiv2.options.Header.format)
  return _impl_.format_.Release();
}
inline void Header::set_allocated_format(std::string* value) {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _impl_.format_.SetAllocated(value, GetArena());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
        if (_impl_.format_.IsDefault()) {
          _impl_.format_.Set("", GetArena());
        }
  #endif  // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:grpc.gateway.protoc_gen_openapiv2.options.Header.format)
}

// string default = 6;
inline void Header::clear_default_() {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _impl_.default__.ClearToEmpty();
}
inline const std::string& Header::default_() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:grpc.gateway.protoc_gen_openapiv2.options.Header.default)
  return _internal_default_();
}
template <typename Arg_, typename... Args_>
inline PROTOBUF_ALWAYS_INLINE void Header::set_default_(Arg_&& arg,
                                                     Args_... args) {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _impl_.default__.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:grpc.gateway.protoc_gen_openapiv2.options.Header.default)
}
inline std::string* Header::mutable_default_() ABSL_ATTRIBUTE_LIFETIME_BOUND {
  std::string* _s = _internal_mutable_default_();
  // @@protoc_insertion_point(field_mutable:grpc.gateway.protoc_gen_openapiv2.options.Header.default)
  return _s;
}
inline const std::string& Header::_internal_default_() const {
  PROTOBUF_TSAN_READ(&_impl_._tsan_detect_race);
  return _impl_.default__.Get();
}
inline void Header::_internal_set_default_(const std::string& value) {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _impl_.default__.Set(value, GetArena());
}
inline std::string* Header::_internal_mutable_default_() {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  return _impl_.default__.Mutable( GetArena());
}
inline std::string* Header::release_default_() {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  // @@protoc_insertion_point(field_release:grpc.gateway.protoc_gen_openapiv2.options.Header.default)
  return _impl_.default__.Release();
}
inline void Header::set_allocated_default_(std::string* value) {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _impl_.default__.SetAllocated(value, GetArena());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
        if (_impl_.default__.IsDefault()) {
          _impl_.default__.Set("", GetArena());
        }
  #endif  // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:grpc.gateway.protoc_gen_openapiv2.options.Header.default)
}

// string pattern = 13;
inline void Header::clear_pattern() {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _impl_.pattern_.ClearToEmpty();
}
inline const std::string& Header::pattern() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:grpc.gateway.protoc_gen_openapiv2.options.Header.pattern)
  return _internal_pattern();
}
template <typename Arg_, typename... Args_>
inline PROTOBUF_ALWAYS_INLINE void Header::set_pattern(Arg_&& arg,
                                                     Args_... args) {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _impl_.pattern_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:grpc.gateway.protoc_gen_openapiv2.options.Header.pattern)
}
inline std::string* Header::mutable_pattern() ABSL_ATTRIBUTE_LIFETIME_BOUND {
  std::string* _s = _internal_mutable_pattern();
  // @@protoc_insertion_point(field_mutable:grpc.gateway.protoc_gen_openapiv2.options.Header.pattern)
  return _s;
}
inline const std::string& Header::_internal_pattern() const {
  PROTOBUF_TSAN_READ(&_impl_._tsan_detect_race);
  return _impl_.pattern_.Get();
}
inline void Header::_internal_set_pattern(const std::string& value) {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _impl_.pattern_.Set(value, GetArena());
}
inline std::string* Header::_internal_mutable_pattern() {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  return _impl_.pattern_.Mutable( GetArena());
}
inline std::string* Header::release_pattern() {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  // @@protoc_insertion_point(field_release:grpc.gateway.protoc_gen_openapiv2.options.Header.pattern)
  return _impl_.pattern_.Release();
}
inline void Header::set_allocated_pattern(std::string* value) {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _impl_.pattern_.SetAllocated(value, GetArena());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
        if (_impl_.pattern_.IsDefault()) {
          _impl_.pattern_.Set("", GetArena());
        }
  #endif  // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:grpc.gateway.protoc_gen_openapiv2.options.Header.pattern)
}

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// Response

// string description = 1;
inline void Response::clear_description() {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _impl_.description_.ClearToEmpty();
}
inline const std::string& Response::description() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:grpc.gateway.protoc_gen_openapiv2.options.Response.description)
  return _internal_description();
}
template <typename Arg_, typename... Args_>
inline PROTOBUF_ALWAYS_INLINE void Response::set_description(Arg_&& arg,
                                                     Args_... args) {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _impl_.description_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:grpc.gateway.protoc_gen_openapiv2.options.Response.description)
}
inline std::string* Response::mutable_description() ABSL_ATTRIBUTE_LIFETIME_BOUND {
  std::string* _s = _internal_mutable_description();
  // @@protoc_insertion_point(field_mutable:grpc.gateway.protoc_gen_openapiv2.options.Response.description)
  return _s;
}
inline const std::string& Response::_internal_description() const {
  PROTOBUF_TSAN_READ(&_impl_._tsan_detect_race);
  return _impl_.description_.Get();
}
inline void Response::_internal_set_description(const std::string& value) {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _impl_.description_.Set(value, GetArena());
}
inline std::string* Response::_internal_mutable_description() {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  return _impl_.description_.Mutable( GetArena());
}
inline std::string* Response::release_description() {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  // @@protoc_insertion_point(field_release:grpc.gateway.protoc_gen_openapiv2.options.Response.description)
  return _impl_.description_.Release();
}
inline void Response::set_allocated_description(std::string* value) {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _impl_.description_.SetAllocated(value, GetArena());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
        if (_impl_.description_.IsDefault()) {
          _impl_.description_.Set("", GetArena());
        }
  #endif  // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:grpc.gateway.protoc_gen_openapiv2.options.Response.description)
}

// .grpc.gateway.protoc_gen_openapiv2.options.Schema schema = 2;
inline bool Response::has_schema() const {
  bool value = (_impl_._has_bits_[0] & 0x00000001u) != 0;
  PROTOBUF_ASSUME(!value || _impl_.schema_ != nullptr);
  return value;
}
inline void Response::clear_schema() {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  if (_impl_.schema_ != nullptr) _impl_.schema_->Clear();
  _impl_._has_bits_[0] &= ~0x00000001u;
}
inline const ::grpc::gateway::protoc_gen_openapiv2::options::Schema& Response::_internal_schema() const {
  PROTOBUF_TSAN_READ(&_impl_._tsan_detect_race);
  const ::grpc::gateway::protoc_gen_openapiv2::options::Schema* p = _impl_.schema_;
  return p != nullptr ? *p : reinterpret_cast<const ::grpc::gateway::protoc_gen_openapiv2::options::Schema&>(::grpc::gateway::protoc_gen_openapiv2::options::_Schema_default_instance_);
}
inline const ::grpc::gateway::protoc_gen_openapiv2::options::Schema& Response::schema() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:grpc.gateway.protoc_gen_openapiv2.options.Response.schema)
  return _internal_schema();
}
inline void Response::unsafe_arena_set_allocated_schema(::grpc::gateway::protoc_gen_openapiv2::options::Schema* value) {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.schema_);
  }
  _impl_.schema_ = reinterpret_cast<::grpc::gateway::protoc_gen_openapiv2::options::Schema*>(value);
  if (value != nullptr) {
    _impl_._has_bits_[0] |= 0x00000001u;
  } else {
    _impl_._has_bits_[0] &= ~0x00000001u;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:grpc.gateway.protoc_gen_openapiv2.options.Response.schema)
}
inline ::grpc::gateway::protoc_gen_openapiv2::options::Schema* Response::release_schema() {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);

  _impl_._has_bits_[0] &= ~0x00000001u;
  ::grpc::gateway::protoc_gen_openapiv2::options::Schema* released = _impl_.schema_;
  _impl_.schema_ = nullptr;
#ifdef PROTOBUF_FORCE_COPY_IN_RELEASE
  auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
  released = ::google::protobuf::internal::DuplicateIfNonNull(released);
  if (GetArena() == nullptr) {
    delete old;
  }
#else   // PROTOBUF_FORCE_COPY_IN_RELEASE
  if (GetArena() != nullptr) {
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
  }
#endif  // !PROTOBUF_FORCE_COPY_IN_RELEASE
  return released;
}
inline ::grpc::gateway::protoc_gen_openapiv2::options::Schema* Response::unsafe_arena_release_schema() {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  // @@protoc_insertion_point(field_release:grpc.gateway.protoc_gen_openapiv2.options.Response.schema)

  _impl_._has_bits_[0] &= ~0x00000001u;
  ::grpc::gateway::protoc_gen_openapiv2::options::Schema* temp = _impl_.schema_;
  _impl_.schema_ = nullptr;
  return temp;
}
inline ::grpc::gateway::protoc_gen_openapiv2::options::Schema* Response::_internal_mutable_schema() {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  if (_impl_.schema_ == nullptr) {
    auto* p = ::google::protobuf::Message::DefaultConstruct<::grpc::gateway::protoc_gen_openapiv2::options::Schema>(GetArena());
    _impl_.schema_ = reinterpret_cast<::grpc::gateway::protoc_gen_openapiv2::options::Schema*>(p);
  }
  return _impl_.schema_;
}
inline ::grpc::gateway::protoc_gen_openapiv2::options::Schema* Response::mutable_schema() ABSL_ATTRIBUTE_LIFETIME_BOUND {
  _impl_._has_bits_[0] |= 0x00000001u;
  ::grpc::gateway::protoc_gen_openapiv2::options::Schema* _msg = _internal_mutable_schema();
  // @@protoc_insertion_point(field_mutable:grpc.gateway.protoc_gen_openapiv2.options.Response.schema)
  return _msg;
}
inline void Response::set_allocated_schema(::grpc::gateway::protoc_gen_openapiv2::options::Schema* value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  if (message_arena == nullptr) {
    delete (_impl_.schema_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = (value)->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    _impl_._has_bits_[0] |= 0x00000001u;
  } else {
    _impl_._has_bits_[0] &= ~0x00000001u;
  }

  _impl_.schema_ = reinterpret_cast<::grpc::gateway::protoc_gen_openapiv2::options::Schema*>(value);
  // @@protoc_insertion_point(field_set_allocated:grpc.gateway.protoc_gen_openapiv2.options.Response.schema)
}

// map<string, .grpc.gateway.protoc_gen_openapiv2.options.Header> headers = 3;
inline int Response::_internal_headers_size() const {
  return _internal_headers().size();
}
inline int Response::headers_size() const {
  return _internal_headers_size();
}
inline void Response::clear_headers() {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _impl_.headers_.Clear();
}
inline const ::google::protobuf::Map<std::string, ::grpc::gateway::protoc_gen_openapiv2::options::Header>& Response::_internal_headers() const {
  PROTOBUF_TSAN_READ(&_impl_._tsan_detect_race);
  return _impl_.headers_.GetMap();
}
inline const ::google::protobuf::Map<std::string, ::grpc::gateway::protoc_gen_openapiv2::options::Header>& Response::headers() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_map:grpc.gateway.protoc_gen_openapiv2.options.Response.headers)
  return _internal_headers();
}
inline ::google::protobuf::Map<std::string, ::grpc::gateway::protoc_gen_openapiv2::options::Header>* Response::_internal_mutable_headers() {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  return _impl_.headers_.MutableMap();
}
inline ::google::protobuf::Map<std::string, ::grpc::gateway::protoc_gen_openapiv2::options::Header>* Response::mutable_headers() ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_mutable_map:grpc.gateway.protoc_gen_openapiv2.options.Response.headers)
  return _internal_mutable_headers();
}

// map<string, string> examples = 4;
inline int Response::_internal_examples_size() const {
  return _internal_examples().size();
}
inline int Response::examples_size() const {
  return _internal_examples_size();
}
inline void Response::clear_examples() {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _impl_.examples_.Clear();
}
inline const ::google::protobuf::Map<std::string, std::string>& Response::_internal_examples() const {
  PROTOBUF_TSAN_READ(&_impl_._tsan_detect_race);
  return _impl_.examples_.GetMap();
}
inline const ::google::protobuf::Map<std::string, std::string>& Response::examples() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_map:grpc.gateway.protoc_gen_openapiv2.options.Response.examples)
  return _internal_examples();
}
inline ::google::protobuf::Map<std::string, std::string>* Response::_internal_mutable_examples() {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  return _impl_.examples_.MutableMap();
}
inline ::google::protobuf::Map<std::string, std::string>* Response::mutable_examples() ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_mutable_map:grpc.gateway.protoc_gen_openapiv2.options.Response.examples)
  return _internal_mutable_examples();
}

// map<string, .google.protobuf.Value> extensions = 5;
inline int Response::_internal_extensions_size() const {
  return _internal_extensions().size();
}
inline int Response::extensions_size() const {
  return _internal_extensions_size();
}
inline const ::google::protobuf::Map<std::string, ::google::protobuf::Value>& Response::_internal_extensions() const {
  PROTOBUF_TSAN_READ(&_impl_._tsan_detect_race);
  return _impl_.extensions_.GetMap();
}
inline const ::google::protobuf::Map<std::string, ::google::protobuf::Value>& Response::extensions() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_map:grpc.gateway.protoc_gen_openapiv2.options.Response.extensions)
  return _internal_extensions();
}
inline ::google::protobuf::Map<std::string, ::google::protobuf::Value>* Response::_internal_mutable_extensions() {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  return _impl_.extensions_.MutableMap();
}
inline ::google::protobuf::Map<std::string, ::google::protobuf::Value>* Response::mutable_extensions() ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_mutable_map:grpc.gateway.protoc_gen_openapiv2.options.Response.extensions)
  return _internal_mutable_extensions();
}

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// Info

// string title = 1;
inline void Info::clear_title() {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _impl_.title_.ClearToEmpty();
}
inline const std::string& Info::title() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:grpc.gateway.protoc_gen_openapiv2.options.Info.title)
  return _internal_title();
}
template <typename Arg_, typename... Args_>
inline PROTOBUF_ALWAYS_INLINE void Info::set_title(Arg_&& arg,
                                                     Args_... args) {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _impl_.title_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:grpc.gateway.protoc_gen_openapiv2.options.Info.title)
}
inline std::string* Info::mutable_title() ABSL_ATTRIBUTE_LIFETIME_BOUND {
  std::string* _s = _internal_mutable_title();
  // @@protoc_insertion_point(field_mutable:grpc.gateway.protoc_gen_openapiv2.options.Info.title)
  return _s;
}
inline const std::string& Info::_internal_title() const {
  PROTOBUF_TSAN_READ(&_impl_._tsan_detect_race);
  return _impl_.title_.Get();
}
inline void Info::_internal_set_title(const std::string& value) {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _impl_.title_.Set(value, GetArena());
}
inline std::string* Info::_internal_mutable_title() {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  return _impl_.title_.Mutable( GetArena());
}
inline std::string* Info::release_title() {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  // @@protoc_insertion_point(field_release:grpc.gateway.protoc_gen_openapiv2.options.Info.title)
  return _impl_.title_.Release();
}
inline void Info::set_allocated_title(std::string* value) {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _impl_.title_.SetAllocated(value, GetArena());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
        if (_impl_.title_.IsDefault()) {
          _impl_.title_.Set("", GetArena());
        }
  #endif  // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:grpc.gateway.protoc_gen_openapiv2.options.Info.title)
}

// string description = 2;
inline void Info::clear_description() {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _impl_.description_.ClearToEmpty();
}
inline const std::string& Info::description() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:grpc.gateway.protoc_gen_openapiv2.options.Info.description)
  return _internal_description();
}
template <typename Arg_, typename... Args_>
inline PROTOBUF_ALWAYS_INLINE void Info::set_description(Arg_&& arg,
                                                     Args_... args) {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _impl_.description_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:grpc.gateway.protoc_gen_openapiv2.options.Info.description)
}
inline std::string* Info::mutable_description() ABSL_ATTRIBUTE_LIFETIME_BOUND {
  std::string* _s = _internal_mutable_description();
  // @@protoc_insertion_point(field_mutable:grpc.gateway.protoc_gen_openapiv2.options.Info.description)
  return _s;
}
inline const std::string& Info::_internal_description() const {
  PROTOBUF_TSAN_READ(&_impl_._tsan_detect_race);
  return _impl_.description_.Get();
}
inline void Info::_internal_set_description(const std::string& value) {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _impl_.description_.Set(value, GetArena());
}
inline std::string* Info::_internal_mutable_description() {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  return _impl_.description_.Mutable( GetArena());
}
inline std::string* Info::release_description() {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  // @@protoc_insertion_point(field_release:grpc.gateway.protoc_gen_openapiv2.options.Info.description)
  return _impl_.description_.Release();
}
inline void Info::set_allocated_description(std::string* value) {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _impl_.description_.SetAllocated(value, GetArena());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
        if (_impl_.description_.IsDefault()) {
          _impl_.description_.Set("", GetArena());
        }
  #endif  // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:grpc.gateway.protoc_gen_openapiv2.options.Info.description)
}

// string terms_of_service = 3;
inline void Info::clear_terms_of_service() {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _impl_.terms_of_service_.ClearToEmpty();
}
inline const std::string& Info::terms_of_service() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:grpc.gateway.protoc_gen_openapiv2.options.Info.terms_of_service)
  return _internal_terms_of_service();
}
template <typename Arg_, typename... Args_>
inline PROTOBUF_ALWAYS_INLINE void Info::set_terms_of_service(Arg_&& arg,
                                                     Args_... args) {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _impl_.terms_of_service_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:grpc.gateway.protoc_gen_openapiv2.options.Info.terms_of_service)
}
inline std::string* Info::mutable_terms_of_service() ABSL_ATTRIBUTE_LIFETIME_BOUND {
  std::string* _s = _internal_mutable_terms_of_service();
  // @@protoc_insertion_point(field_mutable:grpc.gateway.protoc_gen_openapiv2.options.Info.terms_of_service)
  return _s;
}
inline const std::string& Info::_internal_terms_of_service() const {
  PROTOBUF_TSAN_READ(&_impl_._tsan_detect_race);
  return _impl_.terms_of_service_.Get();
}
inline void Info::_internal_set_terms_of_service(const std::string& value) {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _impl_.terms_of_service_.Set(value, GetArena());
}
inline std::string* Info::_internal_mutable_terms_of_service() {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  return _impl_.terms_of_service_.Mutable( GetArena());
}
inline std::string* Info::release_terms_of_service() {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  // @@protoc_insertion_point(field_release:grpc.gateway.protoc_gen_openapiv2.options.Info.terms_of_service)
  return _impl_.terms_of_service_.Release();
}
inline void Info::set_allocated_terms_of_service(std::string* value) {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _impl_.terms_of_service_.SetAllocated(value, GetArena());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
        if (_impl_.terms_of_service_.IsDefault()) {
          _impl_.terms_of_service_.Set("", GetArena());
        }
  #endif  // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:grpc.gateway.protoc_gen_openapiv2.options.Info.terms_of_service)
}

// .grpc.gateway.protoc_gen_openapiv2.options.Contact contact = 4;
inline bool Info::has_contact() const {
  bool value = (_impl_._has_bits_[0] & 0x00000001u) != 0;
  PROTOBUF_ASSUME(!value || _impl_.contact_ != nullptr);
  return value;
}
inline void Info::clear_contact() {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  if (_impl_.contact_ != nullptr) _impl_.contact_->Clear();
  _impl_._has_bits_[0] &= ~0x00000001u;
}
inline const ::grpc::gateway::protoc_gen_openapiv2::options::Contact& Info::_internal_contact() const {
  PROTOBUF_TSAN_READ(&_impl_._tsan_detect_race);
  const ::grpc::gateway::protoc_gen_openapiv2::options::Contact* p = _impl_.contact_;
  return p != nullptr ? *p : reinterpret_cast<const ::grpc::gateway::protoc_gen_openapiv2::options::Contact&>(::grpc::gateway::protoc_gen_openapiv2::options::_Contact_default_instance_);
}
inline const ::grpc::gateway::protoc_gen_openapiv2::options::Contact& Info::contact() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:grpc.gateway.protoc_gen_openapiv2.options.Info.contact)
  return _internal_contact();
}
inline void Info::unsafe_arena_set_allocated_contact(::grpc::gateway::protoc_gen_openapiv2::options::Contact* value) {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.contact_);
  }
  _impl_.contact_ = reinterpret_cast<::grpc::gateway::protoc_gen_openapiv2::options::Contact*>(value);
  if (value != nullptr) {
    _impl_._has_bits_[0] |= 0x00000001u;
  } else {
    _impl_._has_bits_[0] &= ~0x00000001u;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:grpc.gateway.protoc_gen_openapiv2.options.Info.contact)
}
inline ::grpc::gateway::protoc_gen_openapiv2::options::Contact* Info::release_contact() {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);

  _impl_._has_bits_[0] &= ~0x00000001u;
  ::grpc::gateway::protoc_gen_openapiv2::options::Contact* released = _impl_.contact_;
  _impl_.contact_ = nullptr;
#ifdef PROTOBUF_FORCE_COPY_IN_RELEASE
  auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
  released = ::google::protobuf::internal::DuplicateIfNonNull(released);
  if (GetArena() == nullptr) {
    delete old;
  }
#else   // PROTOBUF_FORCE_COPY_IN_RELEASE
  if (GetArena() != nullptr) {
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
  }
#endif  // !PROTOBUF_FORCE_COPY_IN_RELEASE
  return released;
}
inline ::grpc::gateway::protoc_gen_openapiv2::options::Contact* Info::unsafe_arena_release_contact() {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  // @@protoc_insertion_point(field_release:grpc.gateway.protoc_gen_openapiv2.options.Info.contact)

  _impl_._has_bits_[0] &= ~0x00000001u;
  ::grpc::gateway::protoc_gen_openapiv2::options::Contact* temp = _impl_.contact_;
  _impl_.contact_ = nullptr;
  return temp;
}
inline ::grpc::gateway::protoc_gen_openapiv2::options::Contact* Info::_internal_mutable_contact() {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  if (_impl_.contact_ == nullptr) {
    auto* p = ::google::protobuf::Message::DefaultConstruct<::grpc::gateway::protoc_gen_openapiv2::options::Contact>(GetArena());
    _impl_.contact_ = reinterpret_cast<::grpc::gateway::protoc_gen_openapiv2::options::Contact*>(p);
  }
  return _impl_.contact_;
}
inline ::grpc::gateway::protoc_gen_openapiv2::options::Contact* Info::mutable_contact() ABSL_ATTRIBUTE_LIFETIME_BOUND {
  _impl_._has_bits_[0] |= 0x00000001u;
  ::grpc::gateway::protoc_gen_openapiv2::options::Contact* _msg = _internal_mutable_contact();
  // @@protoc_insertion_point(field_mutable:grpc.gateway.protoc_gen_openapiv2.options.Info.contact)
  return _msg;
}
inline void Info::set_allocated_contact(::grpc::gateway::protoc_gen_openapiv2::options::Contact* value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  if (message_arena == nullptr) {
    delete (_impl_.contact_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = (value)->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    _impl_._has_bits_[0] |= 0x00000001u;
  } else {
    _impl_._has_bits_[0] &= ~0x00000001u;
  }

  _impl_.contact_ = reinterpret_cast<::grpc::gateway::protoc_gen_openapiv2::options::Contact*>(value);
  // @@protoc_insertion_point(field_set_allocated:grpc.gateway.protoc_gen_openapiv2.options.Info.contact)
}

// .grpc.gateway.protoc_gen_openapiv2.options.License license = 5;
inline bool Info::has_license() const {
  bool value = (_impl_._has_bits_[0] & 0x00000002u) != 0;
  PROTOBUF_ASSUME(!value || _impl_.license_ != nullptr);
  return value;
}
inline void Info::clear_license() {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  if (_impl_.license_ != nullptr) _impl_.license_->Clear();
  _impl_._has_bits_[0] &= ~0x00000002u;
}
inline const ::grpc::gateway::protoc_gen_openapiv2::options::License& Info::_internal_license() const {
  PROTOBUF_TSAN_READ(&_impl_._tsan_detect_race);
  const ::grpc::gateway::protoc_gen_openapiv2::options::License* p = _impl_.license_;
  return p != nullptr ? *p : reinterpret_cast<const ::grpc::gateway::protoc_gen_openapiv2::options::License&>(::grpc::gateway::protoc_gen_openapiv2::options::_License_default_instance_);
}
inline const ::grpc::gateway::protoc_gen_openapiv2::options::License& Info::license() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:grpc.gateway.protoc_gen_openapiv2.options.Info.license)
  return _internal_license();
}
inline void Info::unsafe_arena_set_allocated_license(::grpc::gateway::protoc_gen_openapiv2::options::License* value) {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.license_);
  }
  _impl_.license_ = reinterpret_cast<::grpc::gateway::protoc_gen_openapiv2::options::License*>(value);
  if (value != nullptr) {
    _impl_._has_bits_[0] |= 0x00000002u;
  } else {
    _impl_._has_bits_[0] &= ~0x00000002u;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:grpc.gateway.protoc_gen_openapiv2.options.Info.license)
}
inline ::grpc::gateway::protoc_gen_openapiv2::options::License* Info::release_license() {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);

  _impl_._has_bits_[0] &= ~0x00000002u;
  ::grpc::gateway::protoc_gen_openapiv2::options::License* released = _impl_.license_;
  _impl_.license_ = nullptr;
#ifdef PROTOBUF_FORCE_COPY_IN_RELEASE
  auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
  released = ::google::protobuf::internal::DuplicateIfNonNull(released);
  if (GetArena() == nullptr) {
    delete old;
  }
#else   // PROTOBUF_FORCE_COPY_IN_RELEASE
  if (GetArena() != nullptr) {
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
  }
#endif  // !PROTOBUF_FORCE_COPY_IN_RELEASE
  return released;
}
inline ::grpc::gateway::protoc_gen_openapiv2::options::License* Info::unsafe_arena_release_license() {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  // @@protoc_insertion_point(field_release:grpc.gateway.protoc_gen_openapiv2.options.Info.license)

  _impl_._has_bits_[0] &= ~0x00000002u;
  ::grpc::gateway::protoc_gen_openapiv2::options::License* temp = _impl_.license_;
  _impl_.license_ = nullptr;
  return temp;
}
inline ::grpc::gateway::protoc_gen_openapiv2::options::License* Info::_internal_mutable_license() {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  if (_impl_.license_ == nullptr) {
    auto* p = ::google::protobuf::Message::DefaultConstruct<::grpc::gateway::protoc_gen_openapiv2::options::License>(GetArena());
    _impl_.license_ = reinterpret_cast<::grpc::gateway::protoc_gen_openapiv2::options::License*>(p);
  }
  return _impl_.license_;
}
inline ::grpc::gateway::protoc_gen_openapiv2::options::License* Info::mutable_license() ABSL_ATTRIBUTE_LIFETIME_BOUND {
  _impl_._has_bits_[0] |= 0x00000002u;
  ::grpc::gateway::protoc_gen_openapiv2::options::License* _msg = _internal_mutable_license();
  // @@protoc_insertion_point(field_mutable:grpc.gateway.protoc_gen_openapiv2.options.Info.license)
  return _msg;
}
inline void Info::set_allocated_license(::grpc::gateway::protoc_gen_openapiv2::options::License* value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  if (message_arena == nullptr) {
    delete (_impl_.license_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = (value)->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    _impl_._has_bits_[0] |= 0x00000002u;
  } else {
    _impl_._has_bits_[0] &= ~0x00000002u;
  }

  _impl_.license_ = reinterpret_cast<::grpc::gateway::protoc_gen_openapiv2::options::License*>(value);
  // @@protoc_insertion_point(field_set_allocated:grpc.gateway.protoc_gen_openapiv2.options.Info.license)
}

// string version = 6;
inline void Info::clear_version() {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _impl_.version_.ClearToEmpty();
}
inline const std::string& Info::version() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:grpc.gateway.protoc_gen_openapiv2.options.Info.version)
  return _internal_version();
}
template <typename Arg_, typename... Args_>
inline PROTOBUF_ALWAYS_INLINE void Info::set_version(Arg_&& arg,
                                                     Args_... args) {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _impl_.version_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:grpc.gateway.protoc_gen_openapiv2.options.Info.version)
}
inline std::string* Info::mutable_version() ABSL_ATTRIBUTE_LIFETIME_BOUND {
  std::string* _s = _internal_mutable_version();
  // @@protoc_insertion_point(field_mutable:grpc.gateway.protoc_gen_openapiv2.options.Info.version)
  return _s;
}
inline const std::string& Info::_internal_version() const {
  PROTOBUF_TSAN_READ(&_impl_._tsan_detect_race);
  return _impl_.version_.Get();
}
inline void Info::_internal_set_version(const std::string& value) {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _impl_.version_.Set(value, GetArena());
}
inline std::string* Info::_internal_mutable_version() {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  return _impl_.version_.Mutable( GetArena());
}
inline std::string* Info::release_version() {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  // @@protoc_insertion_point(field_release:grpc.gateway.protoc_gen_openapiv2.options.Info.version)
  return _impl_.version_.Release();
}
inline void Info::set_allocated_version(std::string* value) {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _impl_.version_.SetAllocated(value, GetArena());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
        if (_impl_.version_.IsDefault()) {
          _impl_.version_.Set("", GetArena());
        }
  #endif  // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:grpc.gateway.protoc_gen_openapiv2.options.Info.version)
}

// map<string, .google.protobuf.Value> extensions = 7;
inline int Info::_internal_extensions_size() const {
  return _internal_extensions().size();
}
inline int Info::extensions_size() const {
  return _internal_extensions_size();
}
inline const ::google::protobuf::Map<std::string, ::google::protobuf::Value>& Info::_internal_extensions() const {
  PROTOBUF_TSAN_READ(&_impl_._tsan_detect_race);
  return _impl_.extensions_.GetMap();
}
inline const ::google::protobuf::Map<std::string, ::google::protobuf::Value>& Info::extensions() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_map:grpc.gateway.protoc_gen_openapiv2.options.Info.extensions)
  return _internal_extensions();
}
inline ::google::protobuf::Map<std::string, ::google::protobuf::Value>* Info::_internal_mutable_extensions() {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  return _impl_.extensions_.MutableMap();
}
inline ::google::protobuf::Map<std::string, ::google::protobuf::Value>* Info::mutable_extensions() ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_mutable_map:grpc.gateway.protoc_gen_openapiv2.options.Info.extensions)
  return _internal_mutable_extensions();
}

// -------------------------------------------------------------------

// Contact

// string name = 1;
inline void Contact::clear_name() {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _impl_.name_.ClearToEmpty();
}
inline const std::string& Contact::name() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:grpc.gateway.protoc_gen_openapiv2.options.Contact.name)
  return _internal_name();
}
template <typename Arg_, typename... Args_>
inline PROTOBUF_ALWAYS_INLINE void Contact::set_name(Arg_&& arg,
                                                     Args_... args) {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _impl_.name_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:grpc.gateway.protoc_gen_openapiv2.options.Contact.name)
}
inline std::string* Contact::mutable_name() ABSL_ATTRIBUTE_LIFETIME_BOUND {
  std::string* _s = _internal_mutable_name();
  // @@protoc_insertion_point(field_mutable:grpc.gateway.protoc_gen_openapiv2.options.Contact.name)
  return _s;
}
inline const std::string& Contact::_internal_name() const {
  PROTOBUF_TSAN_READ(&_impl_._tsan_detect_race);
  return _impl_.name_.Get();
}
inline void Contact::_internal_set_name(const std::string& value) {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _impl_.name_.Set(value, GetArena());
}
inline std::string* Contact::_internal_mutable_name() {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  return _impl_.name_.Mutable( GetArena());
}
inline std::string* Contact::release_name() {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  // @@protoc_insertion_point(field_release:grpc.gateway.protoc_gen_openapiv2.options.Contact.name)
  return _impl_.name_.Release();
}
inline void Contact::set_allocated_name(std::string* value) {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _impl_.name_.SetAllocated(value, GetArena());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
        if (_impl_.name_.IsDefault()) {
          _impl_.name_.Set("", GetArena());
        }
  #endif  // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:grpc.gateway.protoc_gen_openapiv2.options.Contact.name)
}

// string url = 2;
inline void Contact::clear_url() {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _impl_.url_.ClearToEmpty();
}
inline const std::string& Contact::url() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:grpc.gateway.protoc_gen_openapiv2.options.Contact.url)
  return _internal_url();
}
template <typename Arg_, typename... Args_>
inline PROTOBUF_ALWAYS_INLINE void Contact::set_url(Arg_&& arg,
                                                     Args_... args) {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _impl_.url_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:grpc.gateway.protoc_gen_openapiv2.options.Contact.url)
}
inline std::string* Contact::mutable_url() ABSL_ATTRIBUTE_LIFETIME_BOUND {
  std::string* _s = _internal_mutable_url();
  // @@protoc_insertion_point(field_mutable:grpc.gateway.protoc_gen_openapiv2.options.Contact.url)
  return _s;
}
inline const std::string& Contact::_internal_url() const {
  PROTOBUF_TSAN_READ(&_impl_._tsan_detect_race);
  return _impl_.url_.Get();
}
inline void Contact::_internal_set_url(const std::string& value) {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _impl_.url_.Set(value, GetArena());
}
inline std::string* Contact::_internal_mutable_url() {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  return _impl_.url_.Mutable( GetArena());
}
inline std::string* Contact::release_url() {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  // @@protoc_insertion_point(field_release:grpc.gateway.protoc_gen_openapiv2.options.Contact.url)
  return _impl_.url_.Release();
}
inline void Contact::set_allocated_url(std::string* value) {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _impl_.url_.SetAllocated(value, GetArena());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
        if (_impl_.url_.IsDefault()) {
          _impl_.url_.Set("", GetArena());
        }
  #endif  // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:grpc.gateway.protoc_gen_openapiv2.options.Contact.url)
}

// string email = 3;
inline void Contact::clear_email() {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _impl_.email_.ClearToEmpty();
}
inline const std::string& Contact::email() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:grpc.gateway.protoc_gen_openapiv2.options.Contact.email)
  return _internal_email();
}
template <typename Arg_, typename... Args_>
inline PROTOBUF_ALWAYS_INLINE void Contact::set_email(Arg_&& arg,
                                                     Args_... args) {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _impl_.email_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:grpc.gateway.protoc_gen_openapiv2.options.Contact.email)
}
inline std::string* Contact::mutable_email() ABSL_ATTRIBUTE_LIFETIME_BOUND {
  std::string* _s = _internal_mutable_email();
  // @@protoc_insertion_point(field_mutable:grpc.gateway.protoc_gen_openapiv2.options.Contact.email)
  return _s;
}
inline const std::string& Contact::_internal_email() const {
  PROTOBUF_TSAN_READ(&_impl_._tsan_detect_race);
  return _impl_.email_.Get();
}
inline void Contact::_internal_set_email(const std::string& value) {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _impl_.email_.Set(value, GetArena());
}
inline std::string* Contact::_internal_mutable_email() {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  return _impl_.email_.Mutable( GetArena());
}
inline std::string* Contact::release_email() {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  // @@protoc_insertion_point(field_release:grpc.gateway.protoc_gen_openapiv2.options.Contact.email)
  return _impl_.email_.Release();
}
inline void Contact::set_allocated_email(std::string* value) {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _impl_.email_.SetAllocated(value, GetArena());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
        if (_impl_.email_.IsDefault()) {
          _impl_.email_.Set("", GetArena());
        }
  #endif  // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:grpc.gateway.protoc_gen_openapiv2.options.Contact.email)
}

// -------------------------------------------------------------------

// License

// string name = 1;
inline void License::clear_name() {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _impl_.name_.ClearToEmpty();
}
inline const std::string& License::name() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:grpc.gateway.protoc_gen_openapiv2.options.License.name)
  return _internal_name();
}
template <typename Arg_, typename... Args_>
inline PROTOBUF_ALWAYS_INLINE void License::set_name(Arg_&& arg,
                                                     Args_... args) {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _impl_.name_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:grpc.gateway.protoc_gen_openapiv2.options.License.name)
}
inline std::string* License::mutable_name() ABSL_ATTRIBUTE_LIFETIME_BOUND {
  std::string* _s = _internal_mutable_name();
  // @@protoc_insertion_point(field_mutable:grpc.gateway.protoc_gen_openapiv2.options.License.name)
  return _s;
}
inline const std::string& License::_internal_name() const {
  PROTOBUF_TSAN_READ(&_impl_._tsan_detect_race);
  return _impl_.name_.Get();
}
inline void License::_internal_set_name(const std::string& value) {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _impl_.name_.Set(value, GetArena());
}
inline std::string* License::_internal_mutable_name() {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  return _impl_.name_.Mutable( GetArena());
}
inline std::string* License::release_name() {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  // @@protoc_insertion_point(field_release:grpc.gateway.protoc_gen_openapiv2.options.License.name)
  return _impl_.name_.Release();
}
inline void License::set_allocated_name(std::string* value) {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _impl_.name_.SetAllocated(value, GetArena());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
        if (_impl_.name_.IsDefault()) {
          _impl_.name_.Set("", GetArena());
        }
  #endif  // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:grpc.gateway.protoc_gen_openapiv2.options.License.name)
}

// string url = 2;
inline void License::clear_url() {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _impl_.url_.ClearToEmpty();
}
inline const std::string& License::url() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:grpc.gateway.protoc_gen_openapiv2.options.License.url)
  return _internal_url();
}
template <typename Arg_, typename... Args_>
inline PROTOBUF_ALWAYS_INLINE void License::set_url(Arg_&& arg,
                                                     Args_... args) {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _impl_.url_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:grpc.gateway.protoc_gen_openapiv2.options.License.url)
}
inline std::string* License::mutable_url() ABSL_ATTRIBUTE_LIFETIME_BOUND {
  std::string* _s = _internal_mutable_url();
  // @@protoc_insertion_point(field_mutable:grpc.gateway.protoc_gen_openapiv2.options.License.url)
  return _s;
}
inline const std::string& License::_internal_url() const {
  PROTOBUF_TSAN_READ(&_impl_._tsan_detect_race);
  return _impl_.url_.Get();
}
inline void License::_internal_set_url(const std::string& value) {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _impl_.url_.Set(value, GetArena());
}
inline std::string* License::_internal_mutable_url() {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  return _impl_.url_.Mutable( GetArena());
}
inline std::string* License::release_url() {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  // @@protoc_insertion_point(field_release:grpc.gateway.protoc_gen_openapiv2.options.License.url)
  return _impl_.url_.Release();
}
inline void License::set_allocated_url(std::string* value) {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _impl_.url_.SetAllocated(value, GetArena());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
        if (_impl_.url_.IsDefault()) {
          _impl_.url_.Set("", GetArena());
        }
  #endif  // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:grpc.gateway.protoc_gen_openapiv2.options.License.url)
}

// -------------------------------------------------------------------

// ExternalDocumentation

// string description = 1;
inline void ExternalDocumentation::clear_description() {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _impl_.description_.ClearToEmpty();
}
inline const std::string& ExternalDocumentation::description() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.description)
  return _internal_description();
}
template <typename Arg_, typename... Args_>
inline PROTOBUF_ALWAYS_INLINE void ExternalDocumentation::set_description(Arg_&& arg,
                                                     Args_... args) {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _impl_.description_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.description)
}
inline std::string* ExternalDocumentation::mutable_description() ABSL_ATTRIBUTE_LIFETIME_BOUND {
  std::string* _s = _internal_mutable_description();
  // @@protoc_insertion_point(field_mutable:grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.description)
  return _s;
}
inline const std::string& ExternalDocumentation::_internal_description() const {
  PROTOBUF_TSAN_READ(&_impl_._tsan_detect_race);
  return _impl_.description_.Get();
}
inline void ExternalDocumentation::_internal_set_description(const std::string& value) {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _impl_.description_.Set(value, GetArena());
}
inline std::string* ExternalDocumentation::_internal_mutable_description() {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  return _impl_.description_.Mutable( GetArena());
}
inline std::string* ExternalDocumentation::release_description() {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  // @@protoc_insertion_point(field_release:grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.description)
  return _impl_.description_.Release();
}
inline void ExternalDocumentation::set_allocated_description(std::string* value) {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _impl_.description_.SetAllocated(value, GetArena());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
        if (_impl_.description_.IsDefault()) {
          _impl_.description_.Set("", GetArena());
        }
  #endif  // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.description)
}

// string url = 2;
inline void ExternalDocumentation::clear_url() {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _impl_.url_.ClearToEmpty();
}
inline const std::string& ExternalDocumentation::url() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.url)
  return _internal_url();
}
template <typename Arg_, typename... Args_>
inline PROTOBUF_ALWAYS_INLINE void ExternalDocumentation::set_url(Arg_&& arg,
                                                     Args_... args) {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _impl_.url_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.url)
}
inline std::string* ExternalDocumentation::mutable_url() ABSL_ATTRIBUTE_LIFETIME_BOUND {
  std::string* _s = _internal_mutable_url();
  // @@protoc_insertion_point(field_mutable:grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.url)
  return _s;
}
inline const std::string& ExternalDocumentation::_internal_url() const {
  PROTOBUF_TSAN_READ(&_impl_._tsan_detect_race);
  return _impl_.url_.Get();
}
inline void ExternalDocumentation::_internal_set_url(const std::string& value) {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _impl_.url_.Set(value, GetArena());
}
inline std::string* ExternalDocumentation::_internal_mutable_url() {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  return _impl_.url_.Mutable( GetArena());
}
inline std::string* ExternalDocumentation::release_url() {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  // @@protoc_insertion_point(field_release:grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.url)
  return _impl_.url_.Release();
}
inline void ExternalDocumentation::set_allocated_url(std::string* value) {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _impl_.url_.SetAllocated(value, GetArena());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
        if (_impl_.url_.IsDefault()) {
          _impl_.url_.Set("", GetArena());
        }
  #endif  // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation.url)
}

// -------------------------------------------------------------------

// Schema

// .grpc.gateway.protoc_gen_openapiv2.options.JSONSchema json_schema = 1;
inline bool Schema::has_json_schema() const {
  bool value = (_impl_._has_bits_[0] & 0x00000001u) != 0;
  PROTOBUF_ASSUME(!value || _impl_.json_schema_ != nullptr);
  return value;
}
inline void Schema::clear_json_schema() {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  if (_impl_.json_schema_ != nullptr) _impl_.json_schema_->Clear();
  _impl_._has_bits_[0] &= ~0x00000001u;
}
inline const ::grpc::gateway::protoc_gen_openapiv2::options::JSONSchema& Schema::_internal_json_schema() const {
  PROTOBUF_TSAN_READ(&_impl_._tsan_detect_race);
  const ::grpc::gateway::protoc_gen_openapiv2::options::JSONSchema* p = _impl_.json_schema_;
  return p != nullptr ? *p : reinterpret_cast<const ::grpc::gateway::protoc_gen_openapiv2::options::JSONSchema&>(::grpc::gateway::protoc_gen_openapiv2::options::_JSONSchema_default_instance_);
}
inline const ::grpc::gateway::protoc_gen_openapiv2::options::JSONSchema& Schema::json_schema() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:grpc.gateway.protoc_gen_openapiv2.options.Schema.json_schema)
  return _internal_json_schema();
}
inline void Schema::unsafe_arena_set_allocated_json_schema(::grpc::gateway::protoc_gen_openapiv2::options::JSONSchema* value) {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.json_schema_);
  }
  _impl_.json_schema_ = reinterpret_cast<::grpc::gateway::protoc_gen_openapiv2::options::JSONSchema*>(value);
  if (value != nullptr) {
    _impl_._has_bits_[0] |= 0x00000001u;
  } else {
    _impl_._has_bits_[0] &= ~0x00000001u;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:grpc.gateway.protoc_gen_openapiv2.options.Schema.json_schema)
}
inline ::grpc::gateway::protoc_gen_openapiv2::options::JSONSchema* Schema::release_json_schema() {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);

  _impl_._has_bits_[0] &= ~0x00000001u;
  ::grpc::gateway::protoc_gen_openapiv2::options::JSONSchema* released = _impl_.json_schema_;
  _impl_.json_schema_ = nullptr;
#ifdef PROTOBUF_FORCE_COPY_IN_RELEASE
  auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
  released = ::google::protobuf::internal::DuplicateIfNonNull(released);
  if (GetArena() == nullptr) {
    delete old;
  }
#else   // PROTOBUF_FORCE_COPY_IN_RELEASE
  if (GetArena() != nullptr) {
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
  }
#endif  // !PROTOBUF_FORCE_COPY_IN_RELEASE
  return released;
}
inline ::grpc::gateway::protoc_gen_openapiv2::options::JSONSchema* Schema::unsafe_arena_release_json_schema() {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  // @@protoc_insertion_point(field_release:grpc.gateway.protoc_gen_openapiv2.options.Schema.json_schema)

  _impl_._has_bits_[0] &= ~0x00000001u;
  ::grpc::gateway::protoc_gen_openapiv2::options::JSONSchema* temp = _impl_.json_schema_;
  _impl_.json_schema_ = nullptr;
  return temp;
}
inline ::grpc::gateway::protoc_gen_openapiv2::options::JSONSchema* Schema::_internal_mutable_json_schema() {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  if (_impl_.json_schema_ == nullptr) {
    auto* p = ::google::protobuf::Message::DefaultConstruct<::grpc::gateway::protoc_gen_openapiv2::options::JSONSchema>(GetArena());
    _impl_.json_schema_ = reinterpret_cast<::grpc::gateway::protoc_gen_openapiv2::options::JSONSchema*>(p);
  }
  return _impl_.json_schema_;
}
inline ::grpc::gateway::protoc_gen_openapiv2::options::JSONSchema* Schema::mutable_json_schema() ABSL_ATTRIBUTE_LIFETIME_BOUND {
  _impl_._has_bits_[0] |= 0x00000001u;
  ::grpc::gateway::protoc_gen_openapiv2::options::JSONSchema* _msg = _internal_mutable_json_schema();
  // @@protoc_insertion_point(field_mutable:grpc.gateway.protoc_gen_openapiv2.options.Schema.json_schema)
  return _msg;
}
inline void Schema::set_allocated_json_schema(::grpc::gateway::protoc_gen_openapiv2::options::JSONSchema* value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  if (message_arena == nullptr) {
    delete (_impl_.json_schema_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = (value)->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    _impl_._has_bits_[0] |= 0x00000001u;
  } else {
    _impl_._has_bits_[0] &= ~0x00000001u;
  }

  _impl_.json_schema_ = reinterpret_cast<::grpc::gateway::protoc_gen_openapiv2::options::JSONSchema*>(value);
  // @@protoc_insertion_point(field_set_allocated:grpc.gateway.protoc_gen_openapiv2.options.Schema.json_schema)
}

// string discriminator = 2;
inline void Schema::clear_discriminator() {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _impl_.discriminator_.ClearToEmpty();
}
inline const std::string& Schema::discriminator() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:grpc.gateway.protoc_gen_openapiv2.options.Schema.discriminator)
  return _internal_discriminator();
}
template <typename Arg_, typename... Args_>
inline PROTOBUF_ALWAYS_INLINE void Schema::set_discriminator(Arg_&& arg,
                                                     Args_... args) {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _impl_.discriminator_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:grpc.gateway.protoc_gen_openapiv2.options.Schema.discriminator)
}
inline std::string* Schema::mutable_discriminator() ABSL_ATTRIBUTE_LIFETIME_BOUND {
  std::string* _s = _internal_mutable_discriminator();
  // @@protoc_insertion_point(field_mutable:grpc.gateway.protoc_gen_openapiv2.options.Schema.discriminator)
  return _s;
}
inline const std::string& Schema::_internal_discriminator() const {
  PROTOBUF_TSAN_READ(&_impl_._tsan_detect_race);
  return _impl_.discriminator_.Get();
}
inline void Schema::_internal_set_discriminator(const std::string& value) {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _impl_.discriminator_.Set(value, GetArena());
}
inline std::string* Schema::_internal_mutable_discriminator() {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  return _impl_.discriminator_.Mutable( GetArena());
}
inline std::string* Schema::release_discriminator() {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  // @@protoc_insertion_point(field_release:grpc.gateway.protoc_gen_openapiv2.options.Schema.discriminator)
  return _impl_.discriminator_.Release();
}
inline void Schema::set_allocated_discriminator(std::string* value) {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _impl_.discriminator_.SetAllocated(value, GetArena());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
        if (_impl_.discriminator_.IsDefault()) {
          _impl_.discriminator_.Set("", GetArena());
        }
  #endif  // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:grpc.gateway.protoc_gen_openapiv2.options.Schema.discriminator)
}

// bool read_only = 3;
inline void Schema::clear_read_only() {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _impl_.read_only_ = false;
}
inline bool Schema::read_only() const {
  // @@protoc_insertion_point(field_get:grpc.gateway.protoc_gen_openapiv2.options.Schema.read_only)
  return _internal_read_only();
}
inline void Schema::set_read_only(bool value) {
  _internal_set_read_only(value);
  // @@protoc_insertion_point(field_set:grpc.gateway.protoc_gen_openapiv2.options.Schema.read_only)
}
inline bool Schema::_internal_read_only() const {
  PROTOBUF_TSAN_READ(&_impl_._tsan_detect_race);
  return _impl_.read_only_;
}
inline void Schema::_internal_set_read_only(bool value) {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _impl_.read_only_ = value;
}

// .grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation external_docs = 5;
inline bool Schema::has_external_docs() const {
  bool value = (_impl_._has_bits_[0] & 0x00000002u) != 0;
  PROTOBUF_ASSUME(!value || _impl_.external_docs_ != nullptr);
  return value;
}
inline void Schema::clear_external_docs() {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  if (_impl_.external_docs_ != nullptr) _impl_.external_docs_->Clear();
  _impl_._has_bits_[0] &= ~0x00000002u;
}
inline const ::grpc::gateway::protoc_gen_openapiv2::options::ExternalDocumentation& Schema::_internal_external_docs() const {
  PROTOBUF_TSAN_READ(&_impl_._tsan_detect_race);
  const ::grpc::gateway::protoc_gen_openapiv2::options::ExternalDocumentation* p = _impl_.external_docs_;
  return p != nullptr ? *p : reinterpret_cast<const ::grpc::gateway::protoc_gen_openapiv2::options::ExternalDocumentation&>(::grpc::gateway::protoc_gen_openapiv2::options::_ExternalDocumentation_default_instance_);
}
inline const ::grpc::gateway::protoc_gen_openapiv2::options::ExternalDocumentation& Schema::external_docs() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:grpc.gateway.protoc_gen_openapiv2.options.Schema.external_docs)
  return _internal_external_docs();
}
inline void Schema::unsafe_arena_set_allocated_external_docs(::grpc::gateway::protoc_gen_openapiv2::options::ExternalDocumentation* value) {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.external_docs_);
  }
  _impl_.external_docs_ = reinterpret_cast<::grpc::gateway::protoc_gen_openapiv2::options::ExternalDocumentation*>(value);
  if (value != nullptr) {
    _impl_._has_bits_[0] |= 0x00000002u;
  } else {
    _impl_._has_bits_[0] &= ~0x00000002u;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:grpc.gateway.protoc_gen_openapiv2.options.Schema.external_docs)
}
inline ::grpc::gateway::protoc_gen_openapiv2::options::ExternalDocumentation* Schema::release_external_docs() {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);

  _impl_._has_bits_[0] &= ~0x00000002u;
  ::grpc::gateway::protoc_gen_openapiv2::options::ExternalDocumentation* released = _impl_.external_docs_;
  _impl_.external_docs_ = nullptr;
#ifdef PROTOBUF_FORCE_COPY_IN_RELEASE
  auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
  released = ::google::protobuf::internal::DuplicateIfNonNull(released);
  if (GetArena() == nullptr) {
    delete old;
  }
#else   // PROTOBUF_FORCE_COPY_IN_RELEASE
  if (GetArena() != nullptr) {
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
  }
#endif  // !PROTOBUF_FORCE_COPY_IN_RELEASE
  return released;
}
inline ::grpc::gateway::protoc_gen_openapiv2::options::ExternalDocumentation* Schema::unsafe_arena_release_external_docs() {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  // @@protoc_insertion_point(field_release:grpc.gateway.protoc_gen_openapiv2.options.Schema.external_docs)

  _impl_._has_bits_[0] &= ~0x00000002u;
  ::grpc::gateway::protoc_gen_openapiv2::options::ExternalDocumentation* temp = _impl_.external_docs_;
  _impl_.external_docs_ = nullptr;
  return temp;
}
inline ::grpc::gateway::protoc_gen_openapiv2::options::ExternalDocumentation* Schema::_internal_mutable_external_docs() {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  if (_impl_.external_docs_ == nullptr) {
    auto* p = ::google::protobuf::Message::DefaultConstruct<::grpc::gateway::protoc_gen_openapiv2::options::ExternalDocumentation>(GetArena());
    _impl_.external_docs_ = reinterpret_cast<::grpc::gateway::protoc_gen_openapiv2::options::ExternalDocumentation*>(p);
  }
  return _impl_.external_docs_;
}
inline ::grpc::gateway::protoc_gen_openapiv2::options::ExternalDocumentation* Schema::mutable_external_docs() ABSL_ATTRIBUTE_LIFETIME_BOUND {
  _impl_._has_bits_[0] |= 0x00000002u;
  ::grpc::gateway::protoc_gen_openapiv2::options::ExternalDocumentation* _msg = _internal_mutable_external_docs();
  // @@protoc_insertion_point(field_mutable:grpc.gateway.protoc_gen_openapiv2.options.Schema.external_docs)
  return _msg;
}
inline void Schema::set_allocated_external_docs(::grpc::gateway::protoc_gen_openapiv2::options::ExternalDocumentation* value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  if (message_arena == nullptr) {
    delete (_impl_.external_docs_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = (value)->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    _impl_._has_bits_[0] |= 0x00000002u;
  } else {
    _impl_._has_bits_[0] &= ~0x00000002u;
  }

  _impl_.external_docs_ = reinterpret_cast<::grpc::gateway::protoc_gen_openapiv2::options::ExternalDocumentation*>(value);
  // @@protoc_insertion_point(field_set_allocated:grpc.gateway.protoc_gen_openapiv2.options.Schema.external_docs)
}

// string example = 6;
inline void Schema::clear_example() {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _impl_.example_.ClearToEmpty();
}
inline const std::string& Schema::example() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:grpc.gateway.protoc_gen_openapiv2.options.Schema.example)
  return _internal_example();
}
template <typename Arg_, typename... Args_>
inline PROTOBUF_ALWAYS_INLINE void Schema::set_example(Arg_&& arg,
                                                     Args_... args) {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _impl_.example_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:grpc.gateway.protoc_gen_openapiv2.options.Schema.example)
}
inline std::string* Schema::mutable_example() ABSL_ATTRIBUTE_LIFETIME_BOUND {
  std::string* _s = _internal_mutable_example();
  // @@protoc_insertion_point(field_mutable:grpc.gateway.protoc_gen_openapiv2.options.Schema.example)
  return _s;
}
inline const std::string& Schema::_internal_example() const {
  PROTOBUF_TSAN_READ(&_impl_._tsan_detect_race);
  return _impl_.example_.Get();
}
inline void Schema::_internal_set_example(const std::string& value) {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _impl_.example_.Set(value, GetArena());
}
inline std::string* Schema::_internal_mutable_example() {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  return _impl_.example_.Mutable( GetArena());
}
inline std::string* Schema::release_example() {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  // @@protoc_insertion_point(field_release:grpc.gateway.protoc_gen_openapiv2.options.Schema.example)
  return _impl_.example_.Release();
}
inline void Schema::set_allocated_example(std::string* value) {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _impl_.example_.SetAllocated(value, GetArena());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
        if (_impl_.example_.IsDefault()) {
          _impl_.example_.Set("", GetArena());
        }
  #endif  // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:grpc.gateway.protoc_gen_openapiv2.options.Schema.example)
}

// -------------------------------------------------------------------

// JSONSchema_FieldConfiguration

// string path_param_name = 47;
inline void JSONSchema_FieldConfiguration::clear_path_param_name() {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _impl_.path_param_name_.ClearToEmpty();
}
inline const std::string& JSONSchema_FieldConfiguration::path_param_name() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.FieldConfiguration.path_param_name)
  return _internal_path_param_name();
}
template <typename Arg_, typename... Args_>
inline PROTOBUF_ALWAYS_INLINE void JSONSchema_FieldConfiguration::set_path_param_name(Arg_&& arg,
                                                     Args_... args) {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _impl_.path_param_name_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.FieldConfiguration.path_param_name)
}
inline std::string* JSONSchema_FieldConfiguration::mutable_path_param_name() ABSL_ATTRIBUTE_LIFETIME_BOUND {
  std::string* _s = _internal_mutable_path_param_name();
  // @@protoc_insertion_point(field_mutable:grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.FieldConfiguration.path_param_name)
  return _s;
}
inline const std::string& JSONSchema_FieldConfiguration::_internal_path_param_name() const {
  PROTOBUF_TSAN_READ(&_impl_._tsan_detect_race);
  return _impl_.path_param_name_.Get();
}
inline void JSONSchema_FieldConfiguration::_internal_set_path_param_name(const std::string& value) {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _impl_.path_param_name_.Set(value, GetArena());
}
inline std::string* JSONSchema_FieldConfiguration::_internal_mutable_path_param_name() {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  return _impl_.path_param_name_.Mutable( GetArena());
}
inline std::string* JSONSchema_FieldConfiguration::release_path_param_name() {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  // @@protoc_insertion_point(field_release:grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.FieldConfiguration.path_param_name)
  return _impl_.path_param_name_.Release();
}
inline void JSONSchema_FieldConfiguration::set_allocated_path_param_name(std::string* value) {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _impl_.path_param_name_.SetAllocated(value, GetArena());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
        if (_impl_.path_param_name_.IsDefault()) {
          _impl_.path_param_name_.Set("", GetArena());
        }
  #endif  // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.FieldConfiguration.path_param_name)
}

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// JSONSchema

// string ref = 3;
inline void JSONSchema::clear_ref() {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _impl_.ref_.ClearToEmpty();
}
inline const std::string& JSONSchema::ref() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.ref)
  return _internal_ref();
}
template <typename Arg_, typename... Args_>
inline PROTOBUF_ALWAYS_INLINE void JSONSchema::set_ref(Arg_&& arg,
                                                     Args_... args) {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _impl_.ref_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.ref)
}
inline std::string* JSONSchema::mutable_ref() ABSL_ATTRIBUTE_LIFETIME_BOUND {
  std::string* _s = _internal_mutable_ref();
  // @@protoc_insertion_point(field_mutable:grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.ref)
  return _s;
}
inline const std::string& JSONSchema::_internal_ref() const {
  PROTOBUF_TSAN_READ(&_impl_._tsan_detect_race);
  return _impl_.ref_.Get();
}
inline void JSONSchema::_internal_set_ref(const std::string& value) {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _impl_.ref_.Set(value, GetArena());
}
inline std::string* JSONSchema::_internal_mutable_ref() {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  return _impl_.ref_.Mutable( GetArena());
}
inline std::string* JSONSchema::release_ref() {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  // @@protoc_insertion_point(field_release:grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.ref)
  return _impl_.ref_.Release();
}
inline void JSONSchema::set_allocated_ref(std::string* value) {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _impl_.ref_.SetAllocated(value, GetArena());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
        if (_impl_.ref_.IsDefault()) {
          _impl_.ref_.Set("", GetArena());
        }
  #endif  // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.ref)
}

// string title = 5;
inline void JSONSchema::clear_title() {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _impl_.title_.ClearToEmpty();
}
inline const std::string& JSONSchema::title() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.title)
  return _internal_title();
}
template <typename Arg_, typename... Args_>
inline PROTOBUF_ALWAYS_INLINE void JSONSchema::set_title(Arg_&& arg,
                                                     Args_... args) {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _impl_.title_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.title)
}
inline std::string* JSONSchema::mutable_title() ABSL_ATTRIBUTE_LIFETIME_BOUND {
  std::string* _s = _internal_mutable_title();
  // @@protoc_insertion_point(field_mutable:grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.title)
  return _s;
}
inline const std::string& JSONSchema::_internal_title() const {
  PROTOBUF_TSAN_READ(&_impl_._tsan_detect_race);
  return _impl_.title_.Get();
}
inline void JSONSchema::_internal_set_title(const std::string& value) {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _impl_.title_.Set(value, GetArena());
}
inline std::string* JSONSchema::_internal_mutable_title() {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  return _impl_.title_.Mutable( GetArena());
}
inline std::string* JSONSchema::release_title() {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  // @@protoc_insertion_point(field_release:grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.title)
  return _impl_.title_.Release();
}
inline void JSONSchema::set_allocated_title(std::string* value) {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _impl_.title_.SetAllocated(value, GetArena());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
        if (_impl_.title_.IsDefault()) {
          _impl_.title_.Set("", GetArena());
        }
  #endif  // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.title)
}

// string description = 6;
inline void JSONSchema::clear_description() {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _impl_.description_.ClearToEmpty();
}
inline const std::string& JSONSchema::description() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.description)
  return _internal_description();
}
template <typename Arg_, typename... Args_>
inline PROTOBUF_ALWAYS_INLINE void JSONSchema::set_description(Arg_&& arg,
                                                     Args_... args) {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _impl_.description_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.description)
}
inline std::string* JSONSchema::mutable_description() ABSL_ATTRIBUTE_LIFETIME_BOUND {
  std::string* _s = _internal_mutable_description();
  // @@protoc_insertion_point(field_mutable:grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.description)
  return _s;
}
inline const std::string& JSONSchema::_internal_description() const {
  PROTOBUF_TSAN_READ(&_impl_._tsan_detect_race);
  return _impl_.description_.Get();
}
inline void JSONSchema::_internal_set_description(const std::string& value) {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _impl_.description_.Set(value, GetArena());
}
inline std::string* JSONSchema::_internal_mutable_description() {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  return _impl_.description_.Mutable( GetArena());
}
inline std::string* JSONSchema::release_description() {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  // @@protoc_insertion_point(field_release:grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.description)
  return _impl_.description_.Release();
}
inline void JSONSchema::set_allocated_description(std::string* value) {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _impl_.description_.SetAllocated(value, GetArena());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
        if (_impl_.description_.IsDefault()) {
          _impl_.description_.Set("", GetArena());
        }
  #endif  // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.description)
}

// string default = 7;
inline void JSONSchema::clear_default_() {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _impl_.default__.ClearToEmpty();
}
inline const std::string& JSONSchema::default_() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.default)
  return _internal_default_();
}
template <typename Arg_, typename... Args_>
inline PROTOBUF_ALWAYS_INLINE void JSONSchema::set_default_(Arg_&& arg,
                                                     Args_... args) {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _impl_.default__.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.default)
}
inline std::string* JSONSchema::mutable_default_() ABSL_ATTRIBUTE_LIFETIME_BOUND {
  std::string* _s = _internal_mutable_default_();
  // @@protoc_insertion_point(field_mutable:grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.default)
  return _s;
}
inline const std::string& JSONSchema::_internal_default_() const {
  PROTOBUF_TSAN_READ(&_impl_._tsan_detect_race);
  return _impl_.default__.Get();
}
inline void JSONSchema::_internal_set_default_(const std::string& value) {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _impl_.default__.Set(value, GetArena());
}
inline std::string* JSONSchema::_internal_mutable_default_() {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  return _impl_.default__.Mutable( GetArena());
}
inline std::string* JSONSchema::release_default_() {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  // @@protoc_insertion_point(field_release:grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.default)
  return _impl_.default__.Release();
}
inline void JSONSchema::set_allocated_default_(std::string* value) {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _impl_.default__.SetAllocated(value, GetArena());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
        if (_impl_.default__.IsDefault()) {
          _impl_.default__.Set("", GetArena());
        }
  #endif  // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.default)
}

// bool read_only = 8;
inline void JSONSchema::clear_read_only() {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _impl_.read_only_ = false;
}
inline bool JSONSchema::read_only() const {
  // @@protoc_insertion_point(field_get:grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.read_only)
  return _internal_read_only();
}
inline void JSONSchema::set_read_only(bool value) {
  _internal_set_read_only(value);
  // @@protoc_insertion_point(field_set:grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.read_only)
}
inline bool JSONSchema::_internal_read_only() const {
  PROTOBUF_TSAN_READ(&_impl_._tsan_detect_race);
  return _impl_.read_only_;
}
inline void JSONSchema::_internal_set_read_only(bool value) {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _impl_.read_only_ = value;
}

// string example = 9;
inline void JSONSchema::clear_example() {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _impl_.example_.ClearToEmpty();
}
inline const std::string& JSONSchema::example() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.example)
  return _internal_example();
}
template <typename Arg_, typename... Args_>
inline PROTOBUF_ALWAYS_INLINE void JSONSchema::set_example(Arg_&& arg,
                                                     Args_... args) {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _impl_.example_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.example)
}
inline std::string* JSONSchema::mutable_example() ABSL_ATTRIBUTE_LIFETIME_BOUND {
  std::string* _s = _internal_mutable_example();
  // @@protoc_insertion_point(field_mutable:grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.example)
  return _s;
}
inline const std::string& JSONSchema::_internal_example() const {
  PROTOBUF_TSAN_READ(&_impl_._tsan_detect_race);
  return _impl_.example_.Get();
}
inline void JSONSchema::_internal_set_example(const std::string& value) {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _impl_.example_.Set(value, GetArena());
}
inline std::string* JSONSchema::_internal_mutable_example() {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  return _impl_.example_.Mutable( GetArena());
}
inline std::string* JSONSchema::release_example() {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  // @@protoc_insertion_point(field_release:grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.example)
  return _impl_.example_.Release();
}
inline void JSONSchema::set_allocated_example(std::string* value) {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _impl_.example_.SetAllocated(value, GetArena());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
        if (_impl_.example_.IsDefault()) {
          _impl_.example_.Set("", GetArena());
        }
  #endif  // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.example)
}

// double multiple_of = 10;
inline void JSONSchema::clear_multiple_of() {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _impl_.multiple_of_ = 0;
}
inline double JSONSchema::multiple_of() const {
  // @@protoc_insertion_point(field_get:grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.multiple_of)
  return _internal_multiple_of();
}
inline void JSONSchema::set_multiple_of(double value) {
  _internal_set_multiple_of(value);
  // @@protoc_insertion_point(field_set:grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.multiple_of)
}
inline double JSONSchema::_internal_multiple_of() const {
  PROTOBUF_TSAN_READ(&_impl_._tsan_detect_race);
  return _impl_.multiple_of_;
}
inline void JSONSchema::_internal_set_multiple_of(double value) {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _impl_.multiple_of_ = value;
}

// double maximum = 11;
inline void JSONSchema::clear_maximum() {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _impl_.maximum_ = 0;
}
inline double JSONSchema::maximum() const {
  // @@protoc_insertion_point(field_get:grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.maximum)
  return _internal_maximum();
}
inline void JSONSchema::set_maximum(double value) {
  _internal_set_maximum(value);
  // @@protoc_insertion_point(field_set:grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.maximum)
}
inline double JSONSchema::_internal_maximum() const {
  PROTOBUF_TSAN_READ(&_impl_._tsan_detect_race);
  return _impl_.maximum_;
}
inline void JSONSchema::_internal_set_maximum(double value) {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _impl_.maximum_ = value;
}

// bool exclusive_maximum = 12;
inline void JSONSchema::clear_exclusive_maximum() {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _impl_.exclusive_maximum_ = false;
}
inline bool JSONSchema::exclusive_maximum() const {
  // @@protoc_insertion_point(field_get:grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.exclusive_maximum)
  return _internal_exclusive_maximum();
}
inline void JSONSchema::set_exclusive_maximum(bool value) {
  _internal_set_exclusive_maximum(value);
  // @@protoc_insertion_point(field_set:grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.exclusive_maximum)
}
inline bool JSONSchema::_internal_exclusive_maximum() const {
  PROTOBUF_TSAN_READ(&_impl_._tsan_detect_race);
  return _impl_.exclusive_maximum_;
}
inline void JSONSchema::_internal_set_exclusive_maximum(bool value) {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _impl_.exclusive_maximum_ = value;
}

// double minimum = 13;
inline void JSONSchema::clear_minimum() {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _impl_.minimum_ = 0;
}
inline double JSONSchema::minimum() const {
  // @@protoc_insertion_point(field_get:grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.minimum)
  return _internal_minimum();
}
inline void JSONSchema::set_minimum(double value) {
  _internal_set_minimum(value);
  // @@protoc_insertion_point(field_set:grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.minimum)
}
inline double JSONSchema::_internal_minimum() const {
  PROTOBUF_TSAN_READ(&_impl_._tsan_detect_race);
  return _impl_.minimum_;
}
inline void JSONSchema::_internal_set_minimum(double value) {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _impl_.minimum_ = value;
}

// bool exclusive_minimum = 14;
inline void JSONSchema::clear_exclusive_minimum() {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _impl_.exclusive_minimum_ = false;
}
inline bool JSONSchema::exclusive_minimum() const {
  // @@protoc_insertion_point(field_get:grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.exclusive_minimum)
  return _internal_exclusive_minimum();
}
inline void JSONSchema::set_exclusive_minimum(bool value) {
  _internal_set_exclusive_minimum(value);
  // @@protoc_insertion_point(field_set:grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.exclusive_minimum)
}
inline bool JSONSchema::_internal_exclusive_minimum() const {
  PROTOBUF_TSAN_READ(&_impl_._tsan_detect_race);
  return _impl_.exclusive_minimum_;
}
inline void JSONSchema::_internal_set_exclusive_minimum(bool value) {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _impl_.exclusive_minimum_ = value;
}

// uint64 max_length = 15;
inline void JSONSchema::clear_max_length() {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _impl_.max_length_ = ::uint64_t{0u};
}
inline ::uint64_t JSONSchema::max_length() const {
  // @@protoc_insertion_point(field_get:grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.max_length)
  return _internal_max_length();
}
inline void JSONSchema::set_max_length(::uint64_t value) {
  _internal_set_max_length(value);
  // @@protoc_insertion_point(field_set:grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.max_length)
}
inline ::uint64_t JSONSchema::_internal_max_length() const {
  PROTOBUF_TSAN_READ(&_impl_._tsan_detect_race);
  return _impl_.max_length_;
}
inline void JSONSchema::_internal_set_max_length(::uint64_t value) {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _impl_.max_length_ = value;
}

// uint64 min_length = 16;
inline void JSONSchema::clear_min_length() {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _impl_.min_length_ = ::uint64_t{0u};
}
inline ::uint64_t JSONSchema::min_length() const {
  // @@protoc_insertion_point(field_get:grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.min_length)
  return _internal_min_length();
}
inline void JSONSchema::set_min_length(::uint64_t value) {
  _internal_set_min_length(value);
  // @@protoc_insertion_point(field_set:grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.min_length)
}
inline ::uint64_t JSONSchema::_internal_min_length() const {
  PROTOBUF_TSAN_READ(&_impl_._tsan_detect_race);
  return _impl_.min_length_;
}
inline void JSONSchema::_internal_set_min_length(::uint64_t value) {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _impl_.min_length_ = value;
}

// string pattern = 17;
inline void JSONSchema::clear_pattern() {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _impl_.pattern_.ClearToEmpty();
}
inline const std::string& JSONSchema::pattern() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.pattern)
  return _internal_pattern();
}
template <typename Arg_, typename... Args_>
inline PROTOBUF_ALWAYS_INLINE void JSONSchema::set_pattern(Arg_&& arg,
                                                     Args_... args) {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _impl_.pattern_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.pattern)
}
inline std::string* JSONSchema::mutable_pattern() ABSL_ATTRIBUTE_LIFETIME_BOUND {
  std::string* _s = _internal_mutable_pattern();
  // @@protoc_insertion_point(field_mutable:grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.pattern)
  return _s;
}
inline const std::string& JSONSchema::_internal_pattern() const {
  PROTOBUF_TSAN_READ(&_impl_._tsan_detect_race);
  return _impl_.pattern_.Get();
}
inline void JSONSchema::_internal_set_pattern(const std::string& value) {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _impl_.pattern_.Set(value, GetArena());
}
inline std::string* JSONSchema::_internal_mutable_pattern() {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  return _impl_.pattern_.Mutable( GetArena());
}
inline std::string* JSONSchema::release_pattern() {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  // @@protoc_insertion_point(field_release:grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.pattern)
  return _impl_.pattern_.Release();
}
inline void JSONSchema::set_allocated_pattern(std::string* value) {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _impl_.pattern_.SetAllocated(value, GetArena());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
        if (_impl_.pattern_.IsDefault()) {
          _impl_.pattern_.Set("", GetArena());
        }
  #endif  // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.pattern)
}

// uint64 max_items = 20;
inline void JSONSchema::clear_max_items() {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _impl_.max_items_ = ::uint64_t{0u};
}
inline ::uint64_t JSONSchema::max_items() const {
  // @@protoc_insertion_point(field_get:grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.max_items)
  return _internal_max_items();
}
inline void JSONSchema::set_max_items(::uint64_t value) {
  _internal_set_max_items(value);
  // @@protoc_insertion_point(field_set:grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.max_items)
}
inline ::uint64_t JSONSchema::_internal_max_items() const {
  PROTOBUF_TSAN_READ(&_impl_._tsan_detect_race);
  return _impl_.max_items_;
}
inline void JSONSchema::_internal_set_max_items(::uint64_t value) {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _impl_.max_items_ = value;
}

// uint64 min_items = 21;
inline void JSONSchema::clear_min_items() {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _impl_.min_items_ = ::uint64_t{0u};
}
inline ::uint64_t JSONSchema::min_items() const {
  // @@protoc_insertion_point(field_get:grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.min_items)
  return _internal_min_items();
}
inline void JSONSchema::set_min_items(::uint64_t value) {
  _internal_set_min_items(value);
  // @@protoc_insertion_point(field_set:grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.min_items)
}
inline ::uint64_t JSONSchema::_internal_min_items() const {
  PROTOBUF_TSAN_READ(&_impl_._tsan_detect_race);
  return _impl_.min_items_;
}
inline void JSONSchema::_internal_set_min_items(::uint64_t value) {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _impl_.min_items_ = value;
}

// bool unique_items = 22;
inline void JSONSchema::clear_unique_items() {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _impl_.unique_items_ = false;
}
inline bool JSONSchema::unique_items() const {
  // @@protoc_insertion_point(field_get:grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.unique_items)
  return _internal_unique_items();
}
inline void JSONSchema::set_unique_items(bool value) {
  _internal_set_unique_items(value);
  // @@protoc_insertion_point(field_set:grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.unique_items)
}
inline bool JSONSchema::_internal_unique_items() const {
  PROTOBUF_TSAN_READ(&_impl_._tsan_detect_race);
  return _impl_.unique_items_;
}
inline void JSONSchema::_internal_set_unique_items(bool value) {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _impl_.unique_items_ = value;
}

// uint64 max_properties = 24;
inline void JSONSchema::clear_max_properties() {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _impl_.max_properties_ = ::uint64_t{0u};
}
inline ::uint64_t JSONSchema::max_properties() const {
  // @@protoc_insertion_point(field_get:grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.max_properties)
  return _internal_max_properties();
}
inline void JSONSchema::set_max_properties(::uint64_t value) {
  _internal_set_max_properties(value);
  // @@protoc_insertion_point(field_set:grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.max_properties)
}
inline ::uint64_t JSONSchema::_internal_max_properties() const {
  PROTOBUF_TSAN_READ(&_impl_._tsan_detect_race);
  return _impl_.max_properties_;
}
inline void JSONSchema::_internal_set_max_properties(::uint64_t value) {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _impl_.max_properties_ = value;
}

// uint64 min_properties = 25;
inline void JSONSchema::clear_min_properties() {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _impl_.min_properties_ = ::uint64_t{0u};
}
inline ::uint64_t JSONSchema::min_properties() const {
  // @@protoc_insertion_point(field_get:grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.min_properties)
  return _internal_min_properties();
}
inline void JSONSchema::set_min_properties(::uint64_t value) {
  _internal_set_min_properties(value);
  // @@protoc_insertion_point(field_set:grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.min_properties)
}
inline ::uint64_t JSONSchema::_internal_min_properties() const {
  PROTOBUF_TSAN_READ(&_impl_._tsan_detect_race);
  return _impl_.min_properties_;
}
inline void JSONSchema::_internal_set_min_properties(::uint64_t value) {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _impl_.min_properties_ = value;
}

// repeated string required = 26;
inline int JSONSchema::_internal_required_size() const {
  return _internal_required().size();
}
inline int JSONSchema::required_size() const {
  return _internal_required_size();
}
inline void JSONSchema::clear_required() {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _impl_.required_.Clear();
}
inline std::string* JSONSchema::add_required()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  std::string* _s = _internal_mutable_required()->Add();
  // @@protoc_insertion_point(field_add_mutable:grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.required)
  return _s;
}
inline const std::string& JSONSchema::required(int index) const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.required)
  return _internal_required().Get(index);
}
inline std::string* JSONSchema::mutable_required(int index)
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_mutable:grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.required)
  return _internal_mutable_required()->Mutable(index);
}
inline void JSONSchema::set_required(int index, const std::string& value) {
  _internal_mutable_required()->Mutable(index)->assign(value);
  // @@protoc_insertion_point(field_set:grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.required)
}
inline void JSONSchema::set_required(int index, std::string&& value) {
  _internal_mutable_required()->Mutable(index)->assign(std::move(value));
  // @@protoc_insertion_point(field_set:grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.required)
}
inline void JSONSchema::set_required(int index, const char* value) {
  ABSL_DCHECK(value != nullptr);
  _internal_mutable_required()->Mutable(index)->assign(value);
  // @@protoc_insertion_point(field_set_char:grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.required)
}
inline void JSONSchema::set_required(int index, const char* value,
                              std::size_t size) {
  _internal_mutable_required()->Mutable(index)->assign(
      reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_set_pointer:grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.required)
}
inline void JSONSchema::set_required(int index, absl::string_view value) {
  _internal_mutable_required()->Mutable(index)->assign(
      value.data(), value.size());
  // @@protoc_insertion_point(field_set_string_piece:grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.required)
}
inline void JSONSchema::add_required(const std::string& value) {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _internal_mutable_required()->Add()->assign(value);
  // @@protoc_insertion_point(field_add:grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.required)
}
inline void JSONSchema::add_required(std::string&& value) {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _internal_mutable_required()->Add(std::move(value));
  // @@protoc_insertion_point(field_add:grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.required)
}
inline void JSONSchema::add_required(const char* value) {
  ABSL_DCHECK(value != nullptr);
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _internal_mutable_required()->Add()->assign(value);
  // @@protoc_insertion_point(field_add_char:grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.required)
}
inline void JSONSchema::add_required(const char* value, std::size_t size) {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _internal_mutable_required()->Add()->assign(
      reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_add_pointer:grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.required)
}
inline void JSONSchema::add_required(absl::string_view value) {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _internal_mutable_required()->Add()->assign(value.data(),
                                                     value.size());
  // @@protoc_insertion_point(field_add_string_piece:grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.required)
}
inline const ::google::protobuf::RepeatedPtrField<std::string>&
JSONSchema::required() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_list:grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.required)
  return _internal_required();
}
inline ::google::protobuf::RepeatedPtrField<std::string>*
JSONSchema::mutable_required() ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_mutable_list:grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.required)
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  return _internal_mutable_required();
}
inline const ::google::protobuf::RepeatedPtrField<std::string>&
JSONSchema::_internal_required() const {
  PROTOBUF_TSAN_READ(&_impl_._tsan_detect_race);
  return _impl_.required_;
}
inline ::google::protobuf::RepeatedPtrField<std::string>*
JSONSchema::_internal_mutable_required() {
  PROTOBUF_TSAN_READ(&_impl_._tsan_detect_race);
  return &_impl_.required_;
}

// repeated string array = 34;
inline int JSONSchema::_internal_array_size() const {
  return _internal_array().size();
}
inline int JSONSchema::array_size() const {
  return _internal_array_size();
}
inline void JSONSchema::clear_array() {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _impl_.array_.Clear();
}
inline std::string* JSONSchema::add_array()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  std::string* _s = _internal_mutable_array()->Add();
  // @@protoc_insertion_point(field_add_mutable:grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.array)
  return _s;
}
inline const std::string& JSONSchema::array(int index) const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.array)
  return _internal_array().Get(index);
}
inline std::string* JSONSchema::mutable_array(int index)
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_mutable:grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.array)
  return _internal_mutable_array()->Mutable(index);
}
inline void JSONSchema::set_array(int index, const std::string& value) {
  _internal_mutable_array()->Mutable(index)->assign(value);
  // @@protoc_insertion_point(field_set:grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.array)
}
inline void JSONSchema::set_array(int index, std::string&& value) {
  _internal_mutable_array()->Mutable(index)->assign(std::move(value));
  // @@protoc_insertion_point(field_set:grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.array)
}
inline void JSONSchema::set_array(int index, const char* value) {
  ABSL_DCHECK(value != nullptr);
  _internal_mutable_array()->Mutable(index)->assign(value);
  // @@protoc_insertion_point(field_set_char:grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.array)
}
inline void JSONSchema::set_array(int index, const char* value,
                              std::size_t size) {
  _internal_mutable_array()->Mutable(index)->assign(
      reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_set_pointer:grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.array)
}
inline void JSONSchema::set_array(int index, absl::string_view value) {
  _internal_mutable_array()->Mutable(index)->assign(
      value.data(), value.size());
  // @@protoc_insertion_point(field_set_string_piece:grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.array)
}
inline void JSONSchema::add_array(const std::string& value) {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _internal_mutable_array()->Add()->assign(value);
  // @@protoc_insertion_point(field_add:grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.array)
}
inline void JSONSchema::add_array(std::string&& value) {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _internal_mutable_array()->Add(std::move(value));
  // @@protoc_insertion_point(field_add:grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.array)
}
inline void JSONSchema::add_array(const char* value) {
  ABSL_DCHECK(value != nullptr);
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _internal_mutable_array()->Add()->assign(value);
  // @@protoc_insertion_point(field_add_char:grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.array)
}
inline void JSONSchema::add_array(const char* value, std::size_t size) {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _internal_mutable_array()->Add()->assign(
      reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_add_pointer:grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.array)
}
inline void JSONSchema::add_array(absl::string_view value) {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _internal_mutable_array()->Add()->assign(value.data(),
                                                     value.size());
  // @@protoc_insertion_point(field_add_string_piece:grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.array)
}
inline const ::google::protobuf::RepeatedPtrField<std::string>&
JSONSchema::array() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_list:grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.array)
  return _internal_array();
}
inline ::google::protobuf::RepeatedPtrField<std::string>*
JSONSchema::mutable_array() ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_mutable_list:grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.array)
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  return _internal_mutable_array();
}
inline const ::google::protobuf::RepeatedPtrField<std::string>&
JSONSchema::_internal_array() const {
  PROTOBUF_TSAN_READ(&_impl_._tsan_detect_race);
  return _impl_.array_;
}
inline ::google::protobuf::RepeatedPtrField<std::string>*
JSONSchema::_internal_mutable_array() {
  PROTOBUF_TSAN_READ(&_impl_._tsan_detect_race);
  return &_impl_.array_;
}

// repeated .grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.JSONSchemaSimpleTypes type = 35;
inline int JSONSchema::_internal_type_size() const {
  return _internal_type().size();
}
inline int JSONSchema::type_size() const {
  return _internal_type_size();
}
inline void JSONSchema::clear_type() {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _impl_.type_.Clear();
}
inline ::grpc::gateway::protoc_gen_openapiv2::options::JSONSchema_JSONSchemaSimpleTypes JSONSchema::type(int index) const {
  // @@protoc_insertion_point(field_get:grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.type)
  return static_cast<::grpc::gateway::protoc_gen_openapiv2::options::JSONSchema_JSONSchemaSimpleTypes>(_internal_type().Get(index));
}
inline void JSONSchema::set_type(int index, ::grpc::gateway::protoc_gen_openapiv2::options::JSONSchema_JSONSchemaSimpleTypes value) {
  _internal_mutable_type()->Set(index, value);
  // @@protoc_insertion_point(field_set:grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.type)
}
inline void JSONSchema::add_type(::grpc::gateway::protoc_gen_openapiv2::options::JSONSchema_JSONSchemaSimpleTypes value) {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _internal_mutable_type()->Add(value);
  // @@protoc_insertion_point(field_add:grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.type)
}
inline const ::google::protobuf::RepeatedField<int>& JSONSchema::type() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_list:grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.type)
  return _internal_type();
}
inline ::google::protobuf::RepeatedField<int>* JSONSchema::mutable_type()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_mutable_list:grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.type)
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  return _internal_mutable_type();
}
inline const ::google::protobuf::RepeatedField<int>& JSONSchema::_internal_type()
    const {
  PROTOBUF_TSAN_READ(&_impl_._tsan_detect_race);
  return _impl_.type_;
}
inline ::google::protobuf::RepeatedField<int>* JSONSchema::_internal_mutable_type() {
  PROTOBUF_TSAN_READ(&_impl_._tsan_detect_race);
  return &_impl_.type_;
}

// string format = 36;
inline void JSONSchema::clear_format() {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _impl_.format_.ClearToEmpty();
}
inline const std::string& JSONSchema::format() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.format)
  return _internal_format();
}
template <typename Arg_, typename... Args_>
inline PROTOBUF_ALWAYS_INLINE void JSONSchema::set_format(Arg_&& arg,
                                                     Args_... args) {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _impl_.format_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.format)
}
inline std::string* JSONSchema::mutable_format() ABSL_ATTRIBUTE_LIFETIME_BOUND {
  std::string* _s = _internal_mutable_format();
  // @@protoc_insertion_point(field_mutable:grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.format)
  return _s;
}
inline const std::string& JSONSchema::_internal_format() const {
  PROTOBUF_TSAN_READ(&_impl_._tsan_detect_race);
  return _impl_.format_.Get();
}
inline void JSONSchema::_internal_set_format(const std::string& value) {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _impl_.format_.Set(value, GetArena());
}
inline std::string* JSONSchema::_internal_mutable_format() {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  return _impl_.format_.Mutable( GetArena());
}
inline std::string* JSONSchema::release_format() {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  // @@protoc_insertion_point(field_release:grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.format)
  return _impl_.format_.Release();
}
inline void JSONSchema::set_allocated_format(std::string* value) {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _impl_.format_.SetAllocated(value, GetArena());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
        if (_impl_.format_.IsDefault()) {
          _impl_.format_.Set("", GetArena());
        }
  #endif  // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.format)
}

// repeated string enum = 46;
inline int JSONSchema::_internal_enum__size() const {
  return _internal_enum_().size();
}
inline int JSONSchema::enum__size() const {
  return _internal_enum__size();
}
inline void JSONSchema::clear_enum_() {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _impl_.enum__.Clear();
}
inline std::string* JSONSchema::add_enum_()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  std::string* _s = _internal_mutable_enum_()->Add();
  // @@protoc_insertion_point(field_add_mutable:grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.enum)
  return _s;
}
inline const std::string& JSONSchema::enum_(int index) const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.enum)
  return _internal_enum_().Get(index);
}
inline std::string* JSONSchema::mutable_enum_(int index)
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_mutable:grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.enum)
  return _internal_mutable_enum_()->Mutable(index);
}
inline void JSONSchema::set_enum_(int index, const std::string& value) {
  _internal_mutable_enum_()->Mutable(index)->assign(value);
  // @@protoc_insertion_point(field_set:grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.enum)
}
inline void JSONSchema::set_enum_(int index, std::string&& value) {
  _internal_mutable_enum_()->Mutable(index)->assign(std::move(value));
  // @@protoc_insertion_point(field_set:grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.enum)
}
inline void JSONSchema::set_enum_(int index, const char* value) {
  ABSL_DCHECK(value != nullptr);
  _internal_mutable_enum_()->Mutable(index)->assign(value);
  // @@protoc_insertion_point(field_set_char:grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.enum)
}
inline void JSONSchema::set_enum_(int index, const char* value,
                              std::size_t size) {
  _internal_mutable_enum_()->Mutable(index)->assign(
      reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_set_pointer:grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.enum)
}
inline void JSONSchema::set_enum_(int index, absl::string_view value) {
  _internal_mutable_enum_()->Mutable(index)->assign(
      value.data(), value.size());
  // @@protoc_insertion_point(field_set_string_piece:grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.enum)
}
inline void JSONSchema::add_enum_(const std::string& value) {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _internal_mutable_enum_()->Add()->assign(value);
  // @@protoc_insertion_point(field_add:grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.enum)
}
inline void JSONSchema::add_enum_(std::string&& value) {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _internal_mutable_enum_()->Add(std::move(value));
  // @@protoc_insertion_point(field_add:grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.enum)
}
inline void JSONSchema::add_enum_(const char* value) {
  ABSL_DCHECK(value != nullptr);
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _internal_mutable_enum_()->Add()->assign(value);
  // @@protoc_insertion_point(field_add_char:grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.enum)
}
inline void JSONSchema::add_enum_(const char* value, std::size_t size) {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _internal_mutable_enum_()->Add()->assign(
      reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_add_pointer:grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.enum)
}
inline void JSONSchema::add_enum_(absl::string_view value) {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _internal_mutable_enum_()->Add()->assign(value.data(),
                                                     value.size());
  // @@protoc_insertion_point(field_add_string_piece:grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.enum)
}
inline const ::google::protobuf::RepeatedPtrField<std::string>&
JSONSchema::enum_() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_list:grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.enum)
  return _internal_enum_();
}
inline ::google::protobuf::RepeatedPtrField<std::string>*
JSONSchema::mutable_enum_() ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_mutable_list:grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.enum)
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  return _internal_mutable_enum_();
}
inline const ::google::protobuf::RepeatedPtrField<std::string>&
JSONSchema::_internal_enum_() const {
  PROTOBUF_TSAN_READ(&_impl_._tsan_detect_race);
  return _impl_.enum__;
}
inline ::google::protobuf::RepeatedPtrField<std::string>*
JSONSchema::_internal_mutable_enum_() {
  PROTOBUF_TSAN_READ(&_impl_._tsan_detect_race);
  return &_impl_.enum__;
}

// .grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.FieldConfiguration field_configuration = 1001;
inline bool JSONSchema::has_field_configuration() const {
  bool value = (_impl_._has_bits_[0] & 0x00000001u) != 0;
  PROTOBUF_ASSUME(!value || _impl_.field_configuration_ != nullptr);
  return value;
}
inline void JSONSchema::clear_field_configuration() {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  if (_impl_.field_configuration_ != nullptr) _impl_.field_configuration_->Clear();
  _impl_._has_bits_[0] &= ~0x00000001u;
}
inline const ::grpc::gateway::protoc_gen_openapiv2::options::JSONSchema_FieldConfiguration& JSONSchema::_internal_field_configuration() const {
  PROTOBUF_TSAN_READ(&_impl_._tsan_detect_race);
  const ::grpc::gateway::protoc_gen_openapiv2::options::JSONSchema_FieldConfiguration* p = _impl_.field_configuration_;
  return p != nullptr ? *p : reinterpret_cast<const ::grpc::gateway::protoc_gen_openapiv2::options::JSONSchema_FieldConfiguration&>(::grpc::gateway::protoc_gen_openapiv2::options::_JSONSchema_FieldConfiguration_default_instance_);
}
inline const ::grpc::gateway::protoc_gen_openapiv2::options::JSONSchema_FieldConfiguration& JSONSchema::field_configuration() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.field_configuration)
  return _internal_field_configuration();
}
inline void JSONSchema::unsafe_arena_set_allocated_field_configuration(::grpc::gateway::protoc_gen_openapiv2::options::JSONSchema_FieldConfiguration* value) {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.field_configuration_);
  }
  _impl_.field_configuration_ = reinterpret_cast<::grpc::gateway::protoc_gen_openapiv2::options::JSONSchema_FieldConfiguration*>(value);
  if (value != nullptr) {
    _impl_._has_bits_[0] |= 0x00000001u;
  } else {
    _impl_._has_bits_[0] &= ~0x00000001u;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.field_configuration)
}
inline ::grpc::gateway::protoc_gen_openapiv2::options::JSONSchema_FieldConfiguration* JSONSchema::release_field_configuration() {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);

  _impl_._has_bits_[0] &= ~0x00000001u;
  ::grpc::gateway::protoc_gen_openapiv2::options::JSONSchema_FieldConfiguration* released = _impl_.field_configuration_;
  _impl_.field_configuration_ = nullptr;
#ifdef PROTOBUF_FORCE_COPY_IN_RELEASE
  auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
  released = ::google::protobuf::internal::DuplicateIfNonNull(released);
  if (GetArena() == nullptr) {
    delete old;
  }
#else   // PROTOBUF_FORCE_COPY_IN_RELEASE
  if (GetArena() != nullptr) {
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
  }
#endif  // !PROTOBUF_FORCE_COPY_IN_RELEASE
  return released;
}
inline ::grpc::gateway::protoc_gen_openapiv2::options::JSONSchema_FieldConfiguration* JSONSchema::unsafe_arena_release_field_configuration() {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  // @@protoc_insertion_point(field_release:grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.field_configuration)

  _impl_._has_bits_[0] &= ~0x00000001u;
  ::grpc::gateway::protoc_gen_openapiv2::options::JSONSchema_FieldConfiguration* temp = _impl_.field_configuration_;
  _impl_.field_configuration_ = nullptr;
  return temp;
}
inline ::grpc::gateway::protoc_gen_openapiv2::options::JSONSchema_FieldConfiguration* JSONSchema::_internal_mutable_field_configuration() {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  if (_impl_.field_configuration_ == nullptr) {
    auto* p = ::google::protobuf::Message::DefaultConstruct<::grpc::gateway::protoc_gen_openapiv2::options::JSONSchema_FieldConfiguration>(GetArena());
    _impl_.field_configuration_ = reinterpret_cast<::grpc::gateway::protoc_gen_openapiv2::options::JSONSchema_FieldConfiguration*>(p);
  }
  return _impl_.field_configuration_;
}
inline ::grpc::gateway::protoc_gen_openapiv2::options::JSONSchema_FieldConfiguration* JSONSchema::mutable_field_configuration() ABSL_ATTRIBUTE_LIFETIME_BOUND {
  _impl_._has_bits_[0] |= 0x00000001u;
  ::grpc::gateway::protoc_gen_openapiv2::options::JSONSchema_FieldConfiguration* _msg = _internal_mutable_field_configuration();
  // @@protoc_insertion_point(field_mutable:grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.field_configuration)
  return _msg;
}
inline void JSONSchema::set_allocated_field_configuration(::grpc::gateway::protoc_gen_openapiv2::options::JSONSchema_FieldConfiguration* value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  if (message_arena == nullptr) {
    delete (_impl_.field_configuration_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = (value)->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    _impl_._has_bits_[0] |= 0x00000001u;
  } else {
    _impl_._has_bits_[0] &= ~0x00000001u;
  }

  _impl_.field_configuration_ = reinterpret_cast<::grpc::gateway::protoc_gen_openapiv2::options::JSONSchema_FieldConfiguration*>(value);
  // @@protoc_insertion_point(field_set_allocated:grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.field_configuration)
}

// map<string, .google.protobuf.Value> extensions = 48;
inline int JSONSchema::_internal_extensions_size() const {
  return _internal_extensions().size();
}
inline int JSONSchema::extensions_size() const {
  return _internal_extensions_size();
}
inline const ::google::protobuf::Map<std::string, ::google::protobuf::Value>& JSONSchema::_internal_extensions() const {
  PROTOBUF_TSAN_READ(&_impl_._tsan_detect_race);
  return _impl_.extensions_.GetMap();
}
inline const ::google::protobuf::Map<std::string, ::google::protobuf::Value>& JSONSchema::extensions() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_map:grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.extensions)
  return _internal_extensions();
}
inline ::google::protobuf::Map<std::string, ::google::protobuf::Value>* JSONSchema::_internal_mutable_extensions() {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  return _impl_.extensions_.MutableMap();
}
inline ::google::protobuf::Map<std::string, ::google::protobuf::Value>* JSONSchema::mutable_extensions() ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_mutable_map:grpc.gateway.protoc_gen_openapiv2.options.JSONSchema.extensions)
  return _internal_mutable_extensions();
}

// -------------------------------------------------------------------

// Tag

// string description = 2;
inline void Tag::clear_description() {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _impl_.description_.ClearToEmpty();
}
inline const std::string& Tag::description() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:grpc.gateway.protoc_gen_openapiv2.options.Tag.description)
  return _internal_description();
}
template <typename Arg_, typename... Args_>
inline PROTOBUF_ALWAYS_INLINE void Tag::set_description(Arg_&& arg,
                                                     Args_... args) {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _impl_.description_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:grpc.gateway.protoc_gen_openapiv2.options.Tag.description)
}
inline std::string* Tag::mutable_description() ABSL_ATTRIBUTE_LIFETIME_BOUND {
  std::string* _s = _internal_mutable_description();
  // @@protoc_insertion_point(field_mutable:grpc.gateway.protoc_gen_openapiv2.options.Tag.description)
  return _s;
}
inline const std::string& Tag::_internal_description() const {
  PROTOBUF_TSAN_READ(&_impl_._tsan_detect_race);
  return _impl_.description_.Get();
}
inline void Tag::_internal_set_description(const std::string& value) {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _impl_.description_.Set(value, GetArena());
}
inline std::string* Tag::_internal_mutable_description() {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  return _impl_.description_.Mutable( GetArena());
}
inline std::string* Tag::release_description() {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  // @@protoc_insertion_point(field_release:grpc.gateway.protoc_gen_openapiv2.options.Tag.description)
  return _impl_.description_.Release();
}
inline void Tag::set_allocated_description(std::string* value) {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _impl_.description_.SetAllocated(value, GetArena());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
        if (_impl_.description_.IsDefault()) {
          _impl_.description_.Set("", GetArena());
        }
  #endif  // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:grpc.gateway.protoc_gen_openapiv2.options.Tag.description)
}

// .grpc.gateway.protoc_gen_openapiv2.options.ExternalDocumentation external_docs = 3;
inline bool Tag::has_external_docs() const {
  bool value = (_impl_._has_bits_[0] & 0x00000001u) != 0;
  PROTOBUF_ASSUME(!value || _impl_.external_docs_ != nullptr);
  return value;
}
inline void Tag::clear_external_docs() {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  if (_impl_.external_docs_ != nullptr) _impl_.external_docs_->Clear();
  _impl_._has_bits_[0] &= ~0x00000001u;
}
inline const ::grpc::gateway::protoc_gen_openapiv2::options::ExternalDocumentation& Tag::_internal_external_docs() const {
  PROTOBUF_TSAN_READ(&_impl_._tsan_detect_race);
  const ::grpc::gateway::protoc_gen_openapiv2::options::ExternalDocumentation* p = _impl_.external_docs_;
  return p != nullptr ? *p : reinterpret_cast<const ::grpc::gateway::protoc_gen_openapiv2::options::ExternalDocumentation&>(::grpc::gateway::protoc_gen_openapiv2::options::_ExternalDocumentation_default_instance_);
}
inline const ::grpc::gateway::protoc_gen_openapiv2::options::ExternalDocumentation& Tag::external_docs() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:grpc.gateway.protoc_gen_openapiv2.options.Tag.external_docs)
  return _internal_external_docs();
}
inline void Tag::unsafe_arena_set_allocated_external_docs(::grpc::gateway::protoc_gen_openapiv2::options::ExternalDocumentation* value) {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.external_docs_);
  }
  _impl_.external_docs_ = reinterpret_cast<::grpc::gateway::protoc_gen_openapiv2::options::ExternalDocumentation*>(value);
  if (value != nullptr) {
    _impl_._has_bits_[0] |= 0x00000001u;
  } else {
    _impl_._has_bits_[0] &= ~0x00000001u;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:grpc.gateway.protoc_gen_openapiv2.options.Tag.external_docs)
}
inline ::grpc::gateway::protoc_gen_openapiv2::options::ExternalDocumentation* Tag::release_external_docs() {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);

  _impl_._has_bits_[0] &= ~0x00000001u;
  ::grpc::gateway::protoc_gen_openapiv2::options::ExternalDocumentation* released = _impl_.external_docs_;
  _impl_.external_docs_ = nullptr;
#ifdef PROTOBUF_FORCE_COPY_IN_RELEASE
  auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
  released = ::google::protobuf::internal::DuplicateIfNonNull(released);
  if (GetArena() == nullptr) {
    delete old;
  }
#else   // PROTOBUF_FORCE_COPY_IN_RELEASE
  if (GetArena() != nullptr) {
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
  }
#endif  // !PROTOBUF_FORCE_COPY_IN_RELEASE
  return released;
}
inline ::grpc::gateway::protoc_gen_openapiv2::options::ExternalDocumentation* Tag::unsafe_arena_release_external_docs() {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  // @@protoc_insertion_point(field_release:grpc.gateway.protoc_gen_openapiv2.options.Tag.external_docs)

  _impl_._has_bits_[0] &= ~0x00000001u;
  ::grpc::gateway::protoc_gen_openapiv2::options::ExternalDocumentation* temp = _impl_.external_docs_;
  _impl_.external_docs_ = nullptr;
  return temp;
}
inline ::grpc::gateway::protoc_gen_openapiv2::options::ExternalDocumentation* Tag::_internal_mutable_external_docs() {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  if (_impl_.external_docs_ == nullptr) {
    auto* p = ::google::protobuf::Message::DefaultConstruct<::grpc::gateway::protoc_gen_openapiv2::options::ExternalDocumentation>(GetArena());
    _impl_.external_docs_ = reinterpret_cast<::grpc::gateway::protoc_gen_openapiv2::options::ExternalDocumentation*>(p);
  }
  return _impl_.external_docs_;
}
inline ::grpc::gateway::protoc_gen_openapiv2::options::ExternalDocumentation* Tag::mutable_external_docs() ABSL_ATTRIBUTE_LIFETIME_BOUND {
  _impl_._has_bits_[0] |= 0x00000001u;
  ::grpc::gateway::protoc_gen_openapiv2::options::ExternalDocumentation* _msg = _internal_mutable_external_docs();
  // @@protoc_insertion_point(field_mutable:grpc.gateway.protoc_gen_openapiv2.options.Tag.external_docs)
  return _msg;
}
inline void Tag::set_allocated_external_docs(::grpc::gateway::protoc_gen_openapiv2::options::ExternalDocumentation* value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  if (message_arena == nullptr) {
    delete (_impl_.external_docs_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = (value)->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    _impl_._has_bits_[0] |= 0x00000001u;
  } else {
    _impl_._has_bits_[0] &= ~0x00000001u;
  }

  _impl_.external_docs_ = reinterpret_cast<::grpc::gateway::protoc_gen_openapiv2::options::ExternalDocumentation*>(value);
  // @@protoc_insertion_point(field_set_allocated:grpc.gateway.protoc_gen_openapiv2.options.Tag.external_docs)
}

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// SecurityDefinitions

// map<string, .grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme> security = 1;
inline int SecurityDefinitions::_internal_security_size() const {
  return _internal_security().size();
}
inline int SecurityDefinitions::security_size() const {
  return _internal_security_size();
}
inline void SecurityDefinitions::clear_security() {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _impl_.security_.Clear();
}
inline const ::google::protobuf::Map<std::string, ::grpc::gateway::protoc_gen_openapiv2::options::SecurityScheme>& SecurityDefinitions::_internal_security() const {
  PROTOBUF_TSAN_READ(&_impl_._tsan_detect_race);
  return _impl_.security_.GetMap();
}
inline const ::google::protobuf::Map<std::string, ::grpc::gateway::protoc_gen_openapiv2::options::SecurityScheme>& SecurityDefinitions::security() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_map:grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions.security)
  return _internal_security();
}
inline ::google::protobuf::Map<std::string, ::grpc::gateway::protoc_gen_openapiv2::options::SecurityScheme>* SecurityDefinitions::_internal_mutable_security() {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  return _impl_.security_.MutableMap();
}
inline ::google::protobuf::Map<std::string, ::grpc::gateway::protoc_gen_openapiv2::options::SecurityScheme>* SecurityDefinitions::mutable_security() ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_mutable_map:grpc.gateway.protoc_gen_openapiv2.options.SecurityDefinitions.security)
  return _internal_mutable_security();
}

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// SecurityScheme

// .grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.Type type = 1;
inline void SecurityScheme::clear_type() {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _impl_.type_ = 0;
}
inline ::grpc::gateway::protoc_gen_openapiv2::options::SecurityScheme_Type SecurityScheme::type() const {
  // @@protoc_insertion_point(field_get:grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.type)
  return _internal_type();
}
inline void SecurityScheme::set_type(::grpc::gateway::protoc_gen_openapiv2::options::SecurityScheme_Type value) {
  _internal_set_type(value);
  // @@protoc_insertion_point(field_set:grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.type)
}
inline ::grpc::gateway::protoc_gen_openapiv2::options::SecurityScheme_Type SecurityScheme::_internal_type() const {
  PROTOBUF_TSAN_READ(&_impl_._tsan_detect_race);
  return static_cast<::grpc::gateway::protoc_gen_openapiv2::options::SecurityScheme_Type>(_impl_.type_);
}
inline void SecurityScheme::_internal_set_type(::grpc::gateway::protoc_gen_openapiv2::options::SecurityScheme_Type value) {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _impl_.type_ = value;
}

// string description = 2;
inline void SecurityScheme::clear_description() {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _impl_.description_.ClearToEmpty();
}
inline const std::string& SecurityScheme::description() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.description)
  return _internal_description();
}
template <typename Arg_, typename... Args_>
inline PROTOBUF_ALWAYS_INLINE void SecurityScheme::set_description(Arg_&& arg,
                                                     Args_... args) {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _impl_.description_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.description)
}
inline std::string* SecurityScheme::mutable_description() ABSL_ATTRIBUTE_LIFETIME_BOUND {
  std::string* _s = _internal_mutable_description();
  // @@protoc_insertion_point(field_mutable:grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.description)
  return _s;
}
inline const std::string& SecurityScheme::_internal_description() const {
  PROTOBUF_TSAN_READ(&_impl_._tsan_detect_race);
  return _impl_.description_.Get();
}
inline void SecurityScheme::_internal_set_description(const std::string& value) {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _impl_.description_.Set(value, GetArena());
}
inline std::string* SecurityScheme::_internal_mutable_description() {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  return _impl_.description_.Mutable( GetArena());
}
inline std::string* SecurityScheme::release_description() {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  // @@protoc_insertion_point(field_release:grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.description)
  return _impl_.description_.Release();
}
inline void SecurityScheme::set_allocated_description(std::string* value) {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _impl_.description_.SetAllocated(value, GetArena());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
        if (_impl_.description_.IsDefault()) {
          _impl_.description_.Set("", GetArena());
        }
  #endif  // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.description)
}

// string name = 3;
inline void SecurityScheme::clear_name() {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _impl_.name_.ClearToEmpty();
}
inline const std::string& SecurityScheme::name() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.name)
  return _internal_name();
}
template <typename Arg_, typename... Args_>
inline PROTOBUF_ALWAYS_INLINE void SecurityScheme::set_name(Arg_&& arg,
                                                     Args_... args) {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _impl_.name_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.name)
}
inline std::string* SecurityScheme::mutable_name() ABSL_ATTRIBUTE_LIFETIME_BOUND {
  std::string* _s = _internal_mutable_name();
  // @@protoc_insertion_point(field_mutable:grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.name)
  return _s;
}
inline const std::string& SecurityScheme::_internal_name() const {
  PROTOBUF_TSAN_READ(&_impl_._tsan_detect_race);
  return _impl_.name_.Get();
}
inline void SecurityScheme::_internal_set_name(const std::string& value) {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _impl_.name_.Set(value, GetArena());
}
inline std::string* SecurityScheme::_internal_mutable_name() {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  return _impl_.name_.Mutable( GetArena());
}
inline std::string* SecurityScheme::release_name() {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  // @@protoc_insertion_point(field_release:grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.name)
  return _impl_.name_.Release();
}
inline void SecurityScheme::set_allocated_name(std::string* value) {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _impl_.name_.SetAllocated(value, GetArena());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
        if (_impl_.name_.IsDefault()) {
          _impl_.name_.Set("", GetArena());
        }
  #endif  // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.name)
}

// .grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.In in = 4;
inline void SecurityScheme::clear_in() {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _impl_.in_ = 0;
}
inline ::grpc::gateway::protoc_gen_openapiv2::options::SecurityScheme_In SecurityScheme::in() const {
  // @@protoc_insertion_point(field_get:grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.in)
  return _internal_in();
}
inline void SecurityScheme::set_in(::grpc::gateway::protoc_gen_openapiv2::options::SecurityScheme_In value) {
  _internal_set_in(value);
  // @@protoc_insertion_point(field_set:grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.in)
}
inline ::grpc::gateway::protoc_gen_openapiv2::options::SecurityScheme_In SecurityScheme::_internal_in() const {
  PROTOBUF_TSAN_READ(&_impl_._tsan_detect_race);
  return static_cast<::grpc::gateway::protoc_gen_openapiv2::options::SecurityScheme_In>(_impl_.in_);
}
inline void SecurityScheme::_internal_set_in(::grpc::gateway::protoc_gen_openapiv2::options::SecurityScheme_In value) {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _impl_.in_ = value;
}

// .grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.Flow flow = 5;
inline void SecurityScheme::clear_flow() {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _impl_.flow_ = 0;
}
inline ::grpc::gateway::protoc_gen_openapiv2::options::SecurityScheme_Flow SecurityScheme::flow() const {
  // @@protoc_insertion_point(field_get:grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.flow)
  return _internal_flow();
}
inline void SecurityScheme::set_flow(::grpc::gateway::protoc_gen_openapiv2::options::SecurityScheme_Flow value) {
  _internal_set_flow(value);
  // @@protoc_insertion_point(field_set:grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.flow)
}
inline ::grpc::gateway::protoc_gen_openapiv2::options::SecurityScheme_Flow SecurityScheme::_internal_flow() const {
  PROTOBUF_TSAN_READ(&_impl_._tsan_detect_race);
  return static_cast<::grpc::gateway::protoc_gen_openapiv2::options::SecurityScheme_Flow>(_impl_.flow_);
}
inline void SecurityScheme::_internal_set_flow(::grpc::gateway::protoc_gen_openapiv2::options::SecurityScheme_Flow value) {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _impl_.flow_ = value;
}

// string authorization_url = 6;
inline void SecurityScheme::clear_authorization_url() {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _impl_.authorization_url_.ClearToEmpty();
}
inline const std::string& SecurityScheme::authorization_url() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.authorization_url)
  return _internal_authorization_url();
}
template <typename Arg_, typename... Args_>
inline PROTOBUF_ALWAYS_INLINE void SecurityScheme::set_authorization_url(Arg_&& arg,
                                                     Args_... args) {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _impl_.authorization_url_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.authorization_url)
}
inline std::string* SecurityScheme::mutable_authorization_url() ABSL_ATTRIBUTE_LIFETIME_BOUND {
  std::string* _s = _internal_mutable_authorization_url();
  // @@protoc_insertion_point(field_mutable:grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.authorization_url)
  return _s;
}
inline const std::string& SecurityScheme::_internal_authorization_url() const {
  PROTOBUF_TSAN_READ(&_impl_._tsan_detect_race);
  return _impl_.authorization_url_.Get();
}
inline void SecurityScheme::_internal_set_authorization_url(const std::string& value) {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _impl_.authorization_url_.Set(value, GetArena());
}
inline std::string* SecurityScheme::_internal_mutable_authorization_url() {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  return _impl_.authorization_url_.Mutable( GetArena());
}
inline std::string* SecurityScheme::release_authorization_url() {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  // @@protoc_insertion_point(field_release:grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.authorization_url)
  return _impl_.authorization_url_.Release();
}
inline void SecurityScheme::set_allocated_authorization_url(std::string* value) {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _impl_.authorization_url_.SetAllocated(value, GetArena());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
        if (_impl_.authorization_url_.IsDefault()) {
          _impl_.authorization_url_.Set("", GetArena());
        }
  #endif  // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.authorization_url)
}

// string token_url = 7;
inline void SecurityScheme::clear_token_url() {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _impl_.token_url_.ClearToEmpty();
}
inline const std::string& SecurityScheme::token_url() const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.token_url)
  return _internal_token_url();
}
template <typename Arg_, typename... Args_>
inline PROTOBUF_ALWAYS_INLINE void SecurityScheme::set_token_url(Arg_&& arg,
                                                     Args_... args) {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _impl_.token_url_.Set(static_cast<Arg_&&>(arg), args..., GetArena());
  // @@protoc_insertion_point(field_set:grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.token_url)
}
inline std::string* SecurityScheme::mutable_token_url() ABSL_ATTRIBUTE_LIFETIME_BOUND {
  std::string* _s = _internal_mutable_token_url();
  // @@protoc_insertion_point(field_mutable:grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.token_url)
  return _s;
}
inline const std::string& SecurityScheme::_internal_token_url() const {
  PROTOBUF_TSAN_READ(&_impl_._tsan_detect_race);
  return _impl_.token_url_.Get();
}
inline void SecurityScheme::_internal_set_token_url(const std::string& value) {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _impl_.token_url_.Set(value, GetArena());
}
inline std::string* SecurityScheme::_internal_mutable_token_url() {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  return _impl_.token_url_.Mutable( GetArena());
}
inline std::string* SecurityScheme::release_token_url() {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  // @@protoc_insertion_point(field_release:grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.token_url)
  return _impl_.token_url_.Release();
}
inline void SecurityScheme::set_allocated_token_url(std::string* value) {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _impl_.token_url_.SetAllocated(value, GetArena());
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
        if (_impl_.token_url_.IsDefault()) {
          _impl_.token_url_.Set("", GetArena());
        }
  #endif  // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.token_url)
}

// .grpc.gateway.protoc_gen_openapiv2.options.Scopes scopes = 8;
inline bool SecurityScheme::has_scopes() const {
  bool value = (_impl_._has_bits_[0] & 0x00000001u) != 0;
  PROTOBUF_ASSUME(!value || _impl_.scopes_ != nullptr);
  return value;
}
inline void SecurityScheme::clear_scopes() {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  if (_impl_.scopes_ != nullptr) _impl_.scopes_->Clear();
  _impl_._has_bits_[0] &= ~0x00000001u;
}
inline const ::grpc::gateway::protoc_gen_openapiv2::options::Scopes& SecurityScheme::_internal_scopes() const {
  PROTOBUF_TSAN_READ(&_impl_._tsan_detect_race);
  const ::grpc::gateway::protoc_gen_openapiv2::options::Scopes* p = _impl_.scopes_;
  return p != nullptr ? *p : reinterpret_cast<const ::grpc::gateway::protoc_gen_openapiv2::options::Scopes&>(::grpc::gateway::protoc_gen_openapiv2::options::_Scopes_default_instance_);
}
inline const ::grpc::gateway::protoc_gen_openapiv2::options::Scopes& SecurityScheme::scopes() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.scopes)
  return _internal_scopes();
}
inline void SecurityScheme::unsafe_arena_set_allocated_scopes(::grpc::gateway::protoc_gen_openapiv2::options::Scopes* value) {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  if (GetArena() == nullptr) {
    delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.scopes_);
  }
  _impl_.scopes_ = reinterpret_cast<::grpc::gateway::protoc_gen_openapiv2::options::Scopes*>(value);
  if (value != nullptr) {
    _impl_._has_bits_[0] |= 0x00000001u;
  } else {
    _impl_._has_bits_[0] &= ~0x00000001u;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.scopes)
}
inline ::grpc::gateway::protoc_gen_openapiv2::options::Scopes* SecurityScheme::release_scopes() {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);

  _impl_._has_bits_[0] &= ~0x00000001u;
  ::grpc::gateway::protoc_gen_openapiv2::options::Scopes* released = _impl_.scopes_;
  _impl_.scopes_ = nullptr;
#ifdef PROTOBUF_FORCE_COPY_IN_RELEASE
  auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released);
  released = ::google::protobuf::internal::DuplicateIfNonNull(released);
  if (GetArena() == nullptr) {
    delete old;
  }
#else   // PROTOBUF_FORCE_COPY_IN_RELEASE
  if (GetArena() != nullptr) {
    released = ::google::protobuf::internal::DuplicateIfNonNull(released);
  }
#endif  // !PROTOBUF_FORCE_COPY_IN_RELEASE
  return released;
}
inline ::grpc::gateway::protoc_gen_openapiv2::options::Scopes* SecurityScheme::unsafe_arena_release_scopes() {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  // @@protoc_insertion_point(field_release:grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.scopes)

  _impl_._has_bits_[0] &= ~0x00000001u;
  ::grpc::gateway::protoc_gen_openapiv2::options::Scopes* temp = _impl_.scopes_;
  _impl_.scopes_ = nullptr;
  return temp;
}
inline ::grpc::gateway::protoc_gen_openapiv2::options::Scopes* SecurityScheme::_internal_mutable_scopes() {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  if (_impl_.scopes_ == nullptr) {
    auto* p = ::google::protobuf::Message::DefaultConstruct<::grpc::gateway::protoc_gen_openapiv2::options::Scopes>(GetArena());
    _impl_.scopes_ = reinterpret_cast<::grpc::gateway::protoc_gen_openapiv2::options::Scopes*>(p);
  }
  return _impl_.scopes_;
}
inline ::grpc::gateway::protoc_gen_openapiv2::options::Scopes* SecurityScheme::mutable_scopes() ABSL_ATTRIBUTE_LIFETIME_BOUND {
  _impl_._has_bits_[0] |= 0x00000001u;
  ::grpc::gateway::protoc_gen_openapiv2::options::Scopes* _msg = _internal_mutable_scopes();
  // @@protoc_insertion_point(field_mutable:grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.scopes)
  return _msg;
}
inline void SecurityScheme::set_allocated_scopes(::grpc::gateway::protoc_gen_openapiv2::options::Scopes* value) {
  ::google::protobuf::Arena* message_arena = GetArena();
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  if (message_arena == nullptr) {
    delete (_impl_.scopes_);
  }

  if (value != nullptr) {
    ::google::protobuf::Arena* submessage_arena = (value)->GetArena();
    if (message_arena != submessage_arena) {
      value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena);
    }
    _impl_._has_bits_[0] |= 0x00000001u;
  } else {
    _impl_._has_bits_[0] &= ~0x00000001u;
  }

  _impl_.scopes_ = reinterpret_cast<::grpc::gateway::protoc_gen_openapiv2::options::Scopes*>(value);
  // @@protoc_insertion_point(field_set_allocated:grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.scopes)
}

// map<string, .google.protobuf.Value> extensions = 9;
inline int SecurityScheme::_internal_extensions_size() const {
  return _internal_extensions().size();
}
inline int SecurityScheme::extensions_size() const {
  return _internal_extensions_size();
}
inline const ::google::protobuf::Map<std::string, ::google::protobuf::Value>& SecurityScheme::_internal_extensions() const {
  PROTOBUF_TSAN_READ(&_impl_._tsan_detect_race);
  return _impl_.extensions_.GetMap();
}
inline const ::google::protobuf::Map<std::string, ::google::protobuf::Value>& SecurityScheme::extensions() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_map:grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.extensions)
  return _internal_extensions();
}
inline ::google::protobuf::Map<std::string, ::google::protobuf::Value>* SecurityScheme::_internal_mutable_extensions() {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  return _impl_.extensions_.MutableMap();
}
inline ::google::protobuf::Map<std::string, ::google::protobuf::Value>* SecurityScheme::mutable_extensions() ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_mutable_map:grpc.gateway.protoc_gen_openapiv2.options.SecurityScheme.extensions)
  return _internal_mutable_extensions();
}

// -------------------------------------------------------------------

// SecurityRequirement_SecurityRequirementValue

// repeated string scope = 1;
inline int SecurityRequirement_SecurityRequirementValue::_internal_scope_size() const {
  return _internal_scope().size();
}
inline int SecurityRequirement_SecurityRequirementValue::scope_size() const {
  return _internal_scope_size();
}
inline void SecurityRequirement_SecurityRequirementValue::clear_scope() {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _impl_.scope_.Clear();
}
inline std::string* SecurityRequirement_SecurityRequirementValue::add_scope()
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  std::string* _s = _internal_mutable_scope()->Add();
  // @@protoc_insertion_point(field_add_mutable:grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.scope)
  return _s;
}
inline const std::string& SecurityRequirement_SecurityRequirementValue::scope(int index) const
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_get:grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.scope)
  return _internal_scope().Get(index);
}
inline std::string* SecurityRequirement_SecurityRequirementValue::mutable_scope(int index)
    ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_mutable:grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.scope)
  return _internal_mutable_scope()->Mutable(index);
}
inline void SecurityRequirement_SecurityRequirementValue::set_scope(int index, const std::string& value) {
  _internal_mutable_scope()->Mutable(index)->assign(value);
  // @@protoc_insertion_point(field_set:grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.scope)
}
inline void SecurityRequirement_SecurityRequirementValue::set_scope(int index, std::string&& value) {
  _internal_mutable_scope()->Mutable(index)->assign(std::move(value));
  // @@protoc_insertion_point(field_set:grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.scope)
}
inline void SecurityRequirement_SecurityRequirementValue::set_scope(int index, const char* value) {
  ABSL_DCHECK(value != nullptr);
  _internal_mutable_scope()->Mutable(index)->assign(value);
  // @@protoc_insertion_point(field_set_char:grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.scope)
}
inline void SecurityRequirement_SecurityRequirementValue::set_scope(int index, const char* value,
                              std::size_t size) {
  _internal_mutable_scope()->Mutable(index)->assign(
      reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_set_pointer:grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.scope)
}
inline void SecurityRequirement_SecurityRequirementValue::set_scope(int index, absl::string_view value) {
  _internal_mutable_scope()->Mutable(index)->assign(
      value.data(), value.size());
  // @@protoc_insertion_point(field_set_string_piece:grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.scope)
}
inline void SecurityRequirement_SecurityRequirementValue::add_scope(const std::string& value) {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _internal_mutable_scope()->Add()->assign(value);
  // @@protoc_insertion_point(field_add:grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.scope)
}
inline void SecurityRequirement_SecurityRequirementValue::add_scope(std::string&& value) {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _internal_mutable_scope()->Add(std::move(value));
  // @@protoc_insertion_point(field_add:grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.scope)
}
inline void SecurityRequirement_SecurityRequirementValue::add_scope(const char* value) {
  ABSL_DCHECK(value != nullptr);
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _internal_mutable_scope()->Add()->assign(value);
  // @@protoc_insertion_point(field_add_char:grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.scope)
}
inline void SecurityRequirement_SecurityRequirementValue::add_scope(const char* value, std::size_t size) {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _internal_mutable_scope()->Add()->assign(
      reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_add_pointer:grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.scope)
}
inline void SecurityRequirement_SecurityRequirementValue::add_scope(absl::string_view value) {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _internal_mutable_scope()->Add()->assign(value.data(),
                                                     value.size());
  // @@protoc_insertion_point(field_add_string_piece:grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.scope)
}
inline const ::google::protobuf::RepeatedPtrField<std::string>&
SecurityRequirement_SecurityRequirementValue::scope() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_list:grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.scope)
  return _internal_scope();
}
inline ::google::protobuf::RepeatedPtrField<std::string>*
SecurityRequirement_SecurityRequirementValue::mutable_scope() ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_mutable_list:grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue.scope)
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  return _internal_mutable_scope();
}
inline const ::google::protobuf::RepeatedPtrField<std::string>&
SecurityRequirement_SecurityRequirementValue::_internal_scope() const {
  PROTOBUF_TSAN_READ(&_impl_._tsan_detect_race);
  return _impl_.scope_;
}
inline ::google::protobuf::RepeatedPtrField<std::string>*
SecurityRequirement_SecurityRequirementValue::_internal_mutable_scope() {
  PROTOBUF_TSAN_READ(&_impl_._tsan_detect_race);
  return &_impl_.scope_;
}

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// SecurityRequirement

// map<string, .grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.SecurityRequirementValue> security_requirement = 1;
inline int SecurityRequirement::_internal_security_requirement_size() const {
  return _internal_security_requirement().size();
}
inline int SecurityRequirement::security_requirement_size() const {
  return _internal_security_requirement_size();
}
inline void SecurityRequirement::clear_security_requirement() {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _impl_.security_requirement_.Clear();
}
inline const ::google::protobuf::Map<std::string, ::grpc::gateway::protoc_gen_openapiv2::options::SecurityRequirement_SecurityRequirementValue>& SecurityRequirement::_internal_security_requirement() const {
  PROTOBUF_TSAN_READ(&_impl_._tsan_detect_race);
  return _impl_.security_requirement_.GetMap();
}
inline const ::google::protobuf::Map<std::string, ::grpc::gateway::protoc_gen_openapiv2::options::SecurityRequirement_SecurityRequirementValue>& SecurityRequirement::security_requirement() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_map:grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.security_requirement)
  return _internal_security_requirement();
}
inline ::google::protobuf::Map<std::string, ::grpc::gateway::protoc_gen_openapiv2::options::SecurityRequirement_SecurityRequirementValue>* SecurityRequirement::_internal_mutable_security_requirement() {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  return _impl_.security_requirement_.MutableMap();
}
inline ::google::protobuf::Map<std::string, ::grpc::gateway::protoc_gen_openapiv2::options::SecurityRequirement_SecurityRequirementValue>* SecurityRequirement::mutable_security_requirement() ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_mutable_map:grpc.gateway.protoc_gen_openapiv2.options.SecurityRequirement.security_requirement)
  return _internal_mutable_security_requirement();
}

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// Scopes

// map<string, string> scope = 1;
inline int Scopes::_internal_scope_size() const {
  return _internal_scope().size();
}
inline int Scopes::scope_size() const {
  return _internal_scope_size();
}
inline void Scopes::clear_scope() {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  _impl_.scope_.Clear();
}
inline const ::google::protobuf::Map<std::string, std::string>& Scopes::_internal_scope() const {
  PROTOBUF_TSAN_READ(&_impl_._tsan_detect_race);
  return _impl_.scope_.GetMap();
}
inline const ::google::protobuf::Map<std::string, std::string>& Scopes::scope() const ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_map:grpc.gateway.protoc_gen_openapiv2.options.Scopes.scope)
  return _internal_scope();
}
inline ::google::protobuf::Map<std::string, std::string>* Scopes::_internal_mutable_scope() {
  PROTOBUF_TSAN_WRITE(&_impl_._tsan_detect_race);
  return _impl_.scope_.MutableMap();
}
inline ::google::protobuf::Map<std::string, std::string>* Scopes::mutable_scope() ABSL_ATTRIBUTE_LIFETIME_BOUND {
  // @@protoc_insertion_point(field_mutable_map:grpc.gateway.protoc_gen_openapiv2.options.Scopes.scope)
  return _internal_mutable_scope();
}

#ifdef __GNUC__
#pragma GCC diagnostic pop
#endif  // __GNUC__

// @@protoc_insertion_point(namespace_scope)
}  // namespace options
}  // namespace protoc_gen_openapiv2
}  // namespace gateway
}  // namespace grpc


namespace google {
namespace protobuf {

template <>
struct is_proto_enum<::grpc::gateway::protoc_gen_openapiv2::options::JSONSchema_JSONSchemaSimpleTypes> : std::true_type {};
template <>
inline const EnumDescriptor* GetEnumDescriptor<::grpc::gateway::protoc_gen_openapiv2::options::JSONSchema_JSONSchemaSimpleTypes>() {
  return ::grpc::gateway::protoc_gen_openapiv2::options::JSONSchema_JSONSchemaSimpleTypes_descriptor();
}
template <>
struct is_proto_enum<::grpc::gateway::protoc_gen_openapiv2::options::SecurityScheme_Type> : std::true_type {};
template <>
inline const EnumDescriptor* GetEnumDescriptor<::grpc::gateway::protoc_gen_openapiv2::options::SecurityScheme_Type>() {
  return ::grpc::gateway::protoc_gen_openapiv2::options::SecurityScheme_Type_descriptor();
}
template <>
struct is_proto_enum<::grpc::gateway::protoc_gen_openapiv2::options::SecurityScheme_In> : std::true_type {};
template <>
inline const EnumDescriptor* GetEnumDescriptor<::grpc::gateway::protoc_gen_openapiv2::options::SecurityScheme_In>() {
  return ::grpc::gateway::protoc_gen_openapiv2::options::SecurityScheme_In_descriptor();
}
template <>
struct is_proto_enum<::grpc::gateway::protoc_gen_openapiv2::options::SecurityScheme_Flow> : std::true_type {};
template <>
inline const EnumDescriptor* GetEnumDescriptor<::grpc::gateway::protoc_gen_openapiv2::options::SecurityScheme_Flow>() {
  return ::grpc::gateway::protoc_gen_openapiv2::options::SecurityScheme_Flow_descriptor();
}
template <>
struct is_proto_enum<::grpc::gateway::protoc_gen_openapiv2::options::Scheme> : std::true_type {};
template <>
inline const EnumDescriptor* GetEnumDescriptor<::grpc::gateway::protoc_gen_openapiv2::options::Scheme>() {
  return ::grpc::gateway::protoc_gen_openapiv2::options::Scheme_descriptor();
}

}  // namespace protobuf
}  // namespace google

// @@protoc_insertion_point(global_scope)

#include "google/protobuf/port_undef.inc"

#endif  // GOOGLE_PROTOBUF_INCLUDED_protoc_2dgen_2dopenapiv2_2foptions_2fopenapiv2_2eproto_2epb_2eh
